You want to modify the value of an int*
(your array) so need to pass a pointer to it into your increase
function:
void increase(int** data)
{
*data = realloc(*data, 5 * sizeof int);
}
Calling code would then look like:
int *data = malloc(4 * sizeof *data);
/* do stuff with data */
increase(&data);
/* more stuff */
free(data);
1
solved How to use realloc in a function in C