Reallocates a block of memory.
#include <xmalloc.h> void *xrealloc ( void *oldBlk, size_t size);
(IN) Points to a previously allocated memory block.
(IN) Specifies the size (in bytes) of the memory block.
If successful, returns a pointer to the start of the reallocated memory. If insufficient memory is available to allocate a larger block of memory, exits and writes a “no memory available” message on stderr.
The xrealloc function calls the malloc function to enlarge a block of memory.
When the value of the oldBlk parameter is NULL, a new block of memory of size bytes is allocated. Otherwise, the xrealloc function reallocates space of an object of size bytes by either
Shrinking the allocated size of the allocated memory block oldBlk when size is sufficiently smaller than the size of oldBlk.
Allocating a new block and copying the contents of oldBlk to the new block when size is sufficiently larger than the size of oldBlk.
Because it is possible that a new block can be allocated, no other pointers should point into the memory of oldBlk. When a new block is allocated, these pointers point to freed memory, with possibly disastrous results.