/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_calloc.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/11/07 16:47:17 by rparodi #+# #+# */ /* Updated: 2024/10/31 17:55:30 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" /** * @brief Allocates and zeroes memory for an array * * @param nmemb Number of elements to allocate * @param size Size of each element in bytes */ void *ft_calloc(size_t nmemb, size_t size) { size_t total; char *to_return; if (nmemb == 0 || size == 0) return ((void *)malloc(1)); total = nmemb * size; if (total / nmemb != size && total / size != nmemb) return (NULL); to_return = (char *)malloc(total); if (to_return == NULL) to_return = NULL; else ft_bzero(to_return, total); return (to_return); }