Code
c
#include <stdio.h>
#include <stdlib.h>
int main(void) {
// Allocate space for 5 ints
int *arr = malloc(5 * sizeof(int));
if (!arr) {
perror("malloc");
return 1;
}
for (int i = 0; i < 5; i++) arr[i] = i * i;
// Grow the buffer
int *tmp = realloc(arr, 10 * sizeof(int));
if (!tmp) { free(arr); return 1; }
arr = tmp;
for (int i = 5; i < 10; i++) arr[i] = i * i;
for (int i = 0; i < 10; i++) printf("%d ", arr[i]);
printf("\n");
free(arr); // always release
arr = NULL; // avoid dangling pointer
return 0;
}