Witam wszystkich.
Właśnie zacząłem moją przygodę z C. Znalazłem zadanie w którym należy przydzielić pamięć dla tablicy (na początku 10 elementów). Następnie użytkownik wpisuje do tej tablicy liczby i po przekroczeniu rozmiaru tablicy następuje automatyczna realokacja na tablicę o 10 większą. Po wypisaniu "0" program ma wyświetlić wszystkie elementy. Mój kod wklejam poniżej. Przy podaniu dziesiątego elementu program się wysypuje (wyskakuje komunikat, że program przestał działać). Bardzo proszę o pomoc w znalezieniu przyczyny.
Pozdrawiam.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *tab,i,ile,rozmiar;
rozmiar=10;
tab=(int*)malloc(rozmiar);
scanf_s("%d", &tab[0]);
ile=1;
for (i=1;tab[i-1]!=0;i++)
{
scanf_s("%d", &tab[i]);
if (i==(rozmiar-1))
{
rozmiar+=10;
tab=(int*)realloc(tab,rozmiar);
}
ile+=1;
}
printf("\n");
for (i=0;i<ile;i++)
printf ("%d\n",tab[i]);
free(tab);
return 0;
}