Original question
Can I use realloc()
function like the following code:
int *ptr, i, num=5;
for (i=0; i<num; i++)
void *nptr = realloc (ptr, (i+1) * sizeof(int) );
no, you should initialize ptr
at the beginning and then assign the new value
int *ptr = 0;
for (unsigned i=0; i<5; i++) {
void *nptr = realloc (ptr, (i+1) * sizeof(int) );
if (nptr) ptr = nptr;
else abort();
}
Otherwise at the first call you could pass some random value to realloc
. And the memory that you allocate in subsequent calls would simply be lost.