Node:Allocating Cleared Space, Next:Efficiency and Malloc, Previous:Changing Block Size, Up:Unconstrained Allocation
The function calloc allocates memory and clears it to zero.  It
is declared in stdlib.h.
| void * calloc (size_t count, size_t eltsize) | Function | 
| 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 callocreturns. | 
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.