Witam. Chciałem napisać program, w którym użytkownik wprowadza liczbę do tablicy, a po wpisaniu liczby 0 funkcja wyswietla cala tablice. Poczatkowa wielkosc tablicy powinna wynosic 5. Problem w tym, ze przy dalszych indeksach program wypisuje niepoprawne wartosci. Byłby ktoś w stanie mi podpowiedzieć co mam tu zmienić?
#include <stdio.h>
#include <stdlib.h>
void fill_array(int *array, int (*size))
{
int i=0,a,n=1,j;
while(a!=0)
{
if(i == (*size))
{
++n;
(*size) = n*5;
printf("%rozmiar %d, \t rozmiar z n+1: %d", (*size), 5*(n+1));
(array) = realloc((array),(*size)*sizeof(int));
//for(j = (5*n); j<(5*(n+1)); ++j) array[j]=0; // z tym wierszem przy i = 10 wywala program
}
printf("\n%d: \t", i);
scanf("%d", &a);
array[i] = a;
++i;
}
}
void print_array(int *array, int (*size))
{
int i=0;
for(i; i<(*size); ++i)
{
printf("[%d] %d \n",i, array[i]);
}
}
int main(void)
{
int *tab=NULL;
int size = 5;
tab = calloc(size, size*sizeof(int));
fill_array(tab, &size);
print_array(tab, &size);
free(tab);
return 0;
}