Man Linux: Main Page and Category List

NAME

       realloc - memory reallocator

SYNOPSIS

       #include <stdlib.h>

       void *realloc(void *ptr, size_t size);

DESCRIPTION

       The  realloc()  function  shall  change  the  size of the memory object
       pointed to by ptr to the size specified by size. The  contents  of  the
       object  shall  remain  unchanged  up  to  the lesser of the new and old
       sizes. If the new size of the memory object would require  movement  of
       the  object,  the space for the previous instantiation of the object is
       freed. If the new size is larger, the contents of the  newly  allocated
       portion  of  the  object are unspecified. If size is 0 and ptr is not a
       null pointer, the object pointed to is freed. If the  space  cannot  be
       allocated, the object shall remain unchanged.

       If ptr is a null pointer, realloc() shall be equivalent to malloc() for
       the specified size.

       If ptr does not match a pointer returned earlier by calloc(), malloc(),
       or  realloc() or if the space has previously been deallocated by a call
       to free() or realloc(), the behavior is undefined.

       The order and contiguity of storage allocated by  successive  calls  to
       realloc()  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 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.

RETURN VALUE

       Upon successful completion with a size not equal to 0, realloc()  shall
       return a pointer to the (possibly moved) allocated space. If size is 0,
       either a null pointer or a unique  pointer  that  can  be  successfully
       passed  to  free() shall be returned.  If there is not enough available
       memory, realloc() shall return a  null  pointer     and  set  errno  to
       [ENOMEM].

ERRORS

       The realloc() function shall fail if:

       ENOMEM Insufficient memory is available.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       calloc()  ,  free()  ,  malloc()  ,  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 .