Menu
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY CYBERSECURITY DATA SCIENCE
     ❯   

C stdlib realloc() Function

❮ C stdlib Library


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.

❮ C stdlib Library