|
| realloc| Summary | |
#include <stdlib.h>
void far *realloc (
void far *p, /* previously allocated block */
size_t size); /* new size for block */
or
void huge *realloc (
void huge *p, /* previously allocated block */
size_t size); /* new size for block */
or
void xhuge *realloc (
void xhuge *p, /* previously allocated block */
size_t size); /* new size for block */
| | Description | | The realloc function changes the size of a previously allocated memory block. The p argument points to the allocated block and size specifies the new size for the block. The contents of the existing block are copied to the new block. Any additional area in the new block, due to a larger block size, is not initialized. Note - Before calling this function your program must invoke the init_mempool function to initialize the memory management routines and provides the starting address and size of the memory pool.
- Source code for this routine is provide in the LIB folder. You may modify the source to customize this function for your particular hardware environment.
- Pointer arguments and return values are far in Small, Medium, Compact, and Large Memory Models; huge in HCompact and HLarge Memory Models; and xhuge in the XLarge Memory Model. This function is not supported in the Tiny Memory Model.
| | Return Value | | The realloc function returns a pointer to the new block. If there is not enough memory in the memory pool to satisfy the memory request, a null pointer is returned and the original memory block is not affected. | | See Also | | calloc, free, init_mempool, malloc | | Example | |
#include <stdlib.h>
#include <stdio.h> /* for printf */
void tst_realloc (void) {
void far *p;
void far *new_p;
p = malloc (100);
if (p != NULL) {
new_p = realloc (p, 200);
if (new_p != NULL)
p = new_p;
else
printf ("Reallocation failed\n");
}
}
|
|
|