Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


realloc(3p) — Linux manual page

PROLOG |NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |EXAMPLES |APPLICATION USAGE |RATIONALE |FUTURE DIRECTIONS |SEE ALSO |COPYRIGHT

REALLOC(3P)             POSIX Programmer's ManualREALLOC(3P)

PROLOG        top

       This manual page is part of the POSIX Programmer's Manual.  The       Linux implementation of this interface may differ (consult the       corresponding Linux manual page for details of Linux behavior), or       the interface may not be implemented on Linux.

NAME        top

       realloc — memory reallocator

SYNOPSIS        top

       #include <stdlib.h>       void *realloc(void *ptr, size_tsize);

DESCRIPTION        top

       The functionality described on this reference page is aligned with       the ISO C standard. Any conflict between the requirements       described here and the ISO C standard is unintentional. This       volume of POSIX.1‐2017 defers to the ISO C standard.       Therealloc() function shall deallocate the old object pointed to       byptr and return a pointer to a new object that has the size       specified bysize.  The contents of the new object shall be the       same as that of the old object prior to deallocation, up to the       lesser of the new and old sizes. Any bytes in the new object       beyond the size of the old object have indeterminate values. If       the size of the space requested is zero, the behavior shall be       implementation-defined: either a null pointer is returned, or the       behavior shall be as if the size were some non-zero value, except       that the behavior is undefined if the returned pointer is used to       access an object. If the space cannot be allocated, the object       shall remain unchanged.       Ifptr is a null pointer,realloc() shall be equivalent tomalloc() for the specified size.       Ifptr does not match a pointer returned earlier bycalloc(),malloc(), orrealloc() or if the space has previously been       deallocated by a call tofree() orrealloc(), the behavior is       undefined.       The order and contiguity of storage allocated by successive calls       torealloc() 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        top

       Upon successful completion,realloc() shall return a pointer to       the (possibly moved) allocated space. Ifsize is 0, either:        *  A null pointer shall be returned and, ifptr is not a null           pointer,errno shall be set to an implementation-defined           value.        *  A pointer to the allocated space shall be returned, and the           memory object pointed to byptr shall be freed. The           application shall ensure that the pointer is not used to           access an object.       If there is not enough available memory,realloc() shall return a       null pointer and seterrno to[ENOMEM].  Ifrealloc() returns a       null pointer anderrno has been set to[ENOMEM], the memory       referenced byptr shall not be changed.

ERRORS        top

       Therealloc() function shall fail if:ENOMEMInsufficient memory is available.The following sections are informative.

EXAMPLES        top

       None.

APPLICATION USAGE        top

       The description ofrealloc() has been modified from previous       versions of this standard to align with the ISO/IEC 9899:1999       standard. Previous versions explicitly permitted a call torealloc(p, 0) to free the space pointed to by p and return a null       pointer. While this behavior could be interpreted as permitted by       this version of the standard, the C language committee have       indicated that this interpretation is incorrect. Applications       should assume that ifrealloc() returns a null pointer, the space       pointed to byp has not been freed. Since this could lead to       double-frees, implementations should also seterrno if a null       pointer actually indicates a failure, and applications should only       free the space iferrno was changed.

RATIONALE        top

       None.

FUTURE DIRECTIONS        top

       This standard defers to the ISO C standard. While that standard       currently has language that might permitrealloc(p, 0), where p is       not a null pointer, to freep while still returning a null       pointer, the committee responsible for that standard is       considering clarifying the language to explicitly prohibit that       alternative.

SEE ALSO        top

calloc(3p),free(3p),malloc(3p)       The Base Definitions volume of POSIX.1‐2017,stdlib.h(0p)

COPYRIGHT        top

       Portions of this text are reprinted and reproduced in electronic       form from IEEE Std 1003.1-2017, Standard for Information       Technology -- Portable Operating System Interface (POSIX), The       Open Group Base Specifications Issue 7, 2018 Edition, Copyright       (C) 2018 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 athttp://www.opengroup.org/unix/online.html .       Any typographical or formatting errors that appear in this page       are most likely to have been introduced during the conversion of       the source files to man page format. To report such errors, seehttps://www.kernel.org/doc/man-pages/reporting_bugs.html .IEEE/The Open Group                2017REALLOC(3P)

Pages that refer to this page:stdlib.h(0p)calloc(3p)free(3p)getdelim(3p)malloc(3)malloc(3p)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp