Man Linux: Main Page and Category List

NAME

       calloc - a memory allocator

SYNOPSIS

       #include <stdlib.h>

       void *calloc(size_t nelem, size_t elsize);

DESCRIPTION

       The calloc() function shall allocate unused space for an array of nelem
       elements each of whose size in bytes is  elsize.  The  space  shall  be
       initialized to all bits 0.

       The  order  and  contiguity of storage allocated by successive calls to
       calloc()  is  unspecified.  The  pointer  returned  if  the  allocation
       succeeds  shall  be  suitably  aligned  so that it may be assigned to a
       pointer to any type of object and then used to access such an object or
       an  array  of  such  objects in the space allocated (until the space is
       explicitly freed or reallocated). Each such allocation  shall  yield  a
       pointer  to  an  object  disjoint  from  any  other object. The pointer
       returned shall  point  to  the  start  (lowest  byte  address)  of  the
       allocated space. If the space cannot be allocated, a null pointer shall
       be returned. If the size of the space requested is 0, the  behavior  is
       implementation-defined:  the  value  returned  shall  be  either a null
       pointer or a unique pointer.

RETURN VALUE

       Upon  successful  completion  with  both  nelem  and  elsize  non-zero,
       calloc() shall return a pointer to the allocated space. If either nelem
       or elsize is 0, then either a null pointer or a  unique  pointer  value
       that can be successfully passed to free() shall be returned. Otherwise,
       it shall return a null pointer    and set errno to indicate the  error.

ERRORS

       The calloc() function shall fail if:

       ENOMEM Insufficient memory is available.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       There  is  now  no  requirement  for  the implementation to support the
       inclusion of <malloc.h>.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       free() ,  malloc()  ,  realloc()  ,  the  Base  Definitions  volume  of
       IEEE Std 1003.1-2001, <stdlib.h>

COPYRIGHT

       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003  by  the  Institute  of
       Electrical  and  Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained  online
       at http://www.opengroup.org/unix/online.html .