### 2.11 `calloc`—allocate space for arrays

Synopsis

    #include <stdlib.h>
    void *calloc(size_t n, size_t s);
    void *_calloc_r(void *reent, size_t n, size_t s);

Description
Use `calloc` to request a block of memory sufficient to hold an array of n elements, each of which has size s.

The memory allocated by `calloc` comes out of the same memory pool used by `malloc`, but the memory block is initialized to all zero bytes. (To avoid the overhead of initializing the space, use `malloc` instead.)

The alternate function `_calloc_r` is reentrant. The extra argument reent is a pointer to a reentrancy structure.

Returns
If successful, a pointer to the newly allocated space.

If unsuccessful, `NULL`.

Portability
`calloc` is ANSI.

Supporting OS subroutines required: `close`, `fstat`, `isatty`, `lseek`, `read`, `sbrk`, `write`.