Next: Efficiency Considerations for malloc
, Previous: Changing the Size of a Block, Up: Unconstrained Allocation [Contents][Index]
The function calloc
allocates memory and clears it to zero. It
is declared in stdlib.h.
Preliminary: | MT-Safe | AS-Unsafe lock | AC-Unsafe lock fd mem | See POSIX Safety Concepts.
This function allocates a block long enough to contain a vector of
count elements, each of size eltsize. Its contents are
cleared to zero before calloc
returns.
You could define calloc
as follows:
void * calloc (size_t count, size_t eltsize) { size_t size = count * eltsize; void *value = malloc (size); if (value != 0) memset (value, 0, size); return value; }
But in general, it is not guaranteed that calloc
calls
malloc
internally. Therefore, if an application provides its own
malloc
/realloc
/free
outside the C library, it
should always define calloc
, too.