Witam.
Mam problem z realokacją pamięci za pomocą funkcji realloc dla tablicy dwuwymiarowej. W tablicy zapisują się liczby i po przekroczeniu rozmiaru funkcja powinna realokować pamięć. Chcę zrobić tak, że można zarówno dodawać nowe wiersze jak i zwiększać rozmiar danego wiersza.
if(i==rozmiar){
int ni_size = ++rozmiar * sizeof(int);
printf("void* ptr = realloc(%p, %d);\n", tab_wyn, ni_size);
void *ptr = realloc(*tab_wyn, ni_size);
if (!ptr)
{
free(tab_wyn);
perror("realloc");
return EXIT_FAILURE;
}
*tab_wyn = ptr;
}
if(m==rozmiar){
int nm_size = ++rozmiar * sizeof(int);
printf("void* ptr = realloc(%p, %d);\n", *tab_wyn, nm_size);
void* ptr = realloc(tab_wyn, nm_size);
if (!ptr)
{
free(tab_wyn);
perror("realloc");
return EXIT_FAILURE;
}
tab_wyn = ptr;
}
Czy ktoś wie czy to jest dobra koncepcja? Nie działa mi ten kod - wywala Segmentation Fault. :/ Z góry dziękuję za pomoc ;)