C stdlib realloc() Function
Example
Increase allocated memory:
// Allocate memory for a number of items
int numItems = 10;
int *myArray = malloc(numItems * sizeof(int));
// Write into the memory
for(int i = 0; i < numItems; i++) {
myArray[i] = i + 1;
}
// Reallocate the memory
numItems = 20;
myArray = realloc(myArray, numItems * sizeof(int));
// Display the contents of the memory
for(int i = 0; i < numItems; i++) {
printf("%d ", myArray[i]);
}
// Free the memory
free(myArray);
myArray = NULL;
Try it Yourself »
Definition and Usage
The realloc()
function changes the size of a block of memory and returns a pointer to the block of memory. If there is not enough memory at the current location then the block of memory will be moved to a different location and a different pointer will be returned. The values in newly allocated memory are unpredictable.
The realloc()
function is defined in the <stdlib.h>
header file.
To learn more about memory allocation, see our C Memory Management tutorial.
Syntax
realloc(void * ptr, size_t size);
The size_t
data type is a non-negative integer.
Parameter Values
Parameter | Description |
---|---|
ptr | Specifies a block of memory to be reallocated. |
size | Specifies the new size of the block of memory measured in bytes. |
Technical Details
Returns: | A void * pointer to the block of memory. |
---|