Jak korzystać z funkcji realokacji w funkcji w C [duplikat]
To pytanie ma już tutaj odpowiedź:
Dostęp do pamięci dynamicznej działa tylko wewnątrz funkcji 1 odpowiedźOpierając się na tym, czego się tutaj dowiedziałem:Manipulowanie dynamiczną tablicą poprzez funkcje w C.
void test(int data[])
{
data[0] = 1;
}
int main(void)
{
int *data = malloc(4 * sizeof *data);
test(data);
return 0;
}
To działa dobrze. Jednak staram się też używaćrealloc
w funkcji.
void increase(int data[])
{
data = realloc(data, 5 * sizeof *data);
}
Jest to zgodne, ale program ulega awarii po uruchomieniu.
Pytanie
Jak używać realloc w funkcji?
Rozumiem, że powinienem przypisać wynikrealloc
do zmiennej i sprawdź, czy takNULL
pierwszy. To tylko uproszczony przykład.