int main() {
int *numbers = malloc(5 * sizeof(int));
// Speicherplatz auf 10 ints vergrößern
int *temp = realloc(numbers, 10 * sizeof(int));
if (temp != NULL) {
numbers = temp;
printf("Speicher erfolgreich vergrößert.\n");
} else {
// Fehlerbehandlung
printf("Speicher konnte nicht vergrößert werden.\n");
free(numbers);
return 1;
}
free (numbers)
return 0;
}
我想将存储空间从 5 个整数扩展到 10 个整数,只是为了练习。我不知道把“免费(号码)”放在哪里。
您现在正在做的事情
free
是正确的。如果realloc
重新定位数据(由realloc
返回不等于numbers
的指针表示),它会自动free
numbers
,所以无论你调用多少次realloc
,你应该只拨打 free
一次,就像您现在所做的那样。