В конце кода ниже, какой указатель мне нужно подключить к free(), array или temp_array? Имеет ли значение, какой из них или освободит блок памяти?
int *array = 0;
int *temp_array = 0;
int count = 0;
array = malloc(sizeof(int));
// skipping code where count is calculated...
temp_array = realloc(array, count * sizeof(int));
if (temp_array == NULL) {
free(array);
// some error message
return;
}
array = temp_array;
// skipping section of code, which reads numbers from a file and loads them into an array
// amount of numbers read can be 0 to whatever
free (array); // free array or temp_array?
Кроме того, возможно ли выделить блок памяти с помощью realloc, если указатель, для которого он пытается выделить память, равен NULL (другими словами, мне нужно сначала выделить память с помощью malloc, а затем изменить ее размер с помощью realloc, или я могу пропустить маллок)?