delorie.com/djgpp/doc/libc/libc_648.html | search |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
#include <stdlib.h> void *realloc(void *ptr, size_t size); |
This function changes the size of the region pointed to by ptr.
If it can, it will reuse the same memory space, but it may have to
allocate a new memory space to satisfy the request. In either case, it
will return the pointer that you should use to refer to the (possibly
new) memory area. The pointer passed may be NULL
, in which case
this function acts just like malloc
(see section malloc).
An application that wants to be robust in the face of a possible failure
of realloc
to enlarge a buffer should save a copy of the old
pointer in a local variable, to be able to use the original buffer in
case realloc
returns NULL
. See the example below for
details.
On success, a pointer is returned to the memory you should now refer
to. On failure, NULL
is returned and the memory pointed to by
ptr prior to the call is not freed.
ANSI/ISO C | C89; C99 |
POSIX | 1003.2-1992; 1003.1-2001 |
if (now+new > max) { char *old = p; max = now+new; p = realloc(p, max); if (p == NULL) p = old; /* retain the old pointer */ } |
webmaster | delorie software privacy |
Copyright © 2004 | Updated Apr 2004 |