Złe dane wyjsciowe

0

Witam! Mam do napisania program w C. Ze na poczatku tworzona jest tablica dynamiczna 10 elementowa, program wczytuje dane az nie zostanie wpisana 1, a potem wypiusje od tyu, w razie wypadku czyli jak bedzie za malo elemntow tablicy, to nalezy ja powiekszyc: no to napisalem cos takiego:

#include <stdio.h>
#include <stdlib.h>


main()
{	int n = 10;
	int i=0;
    int* tab = (int*) malloc(n*sizeof(int));
	scanf("%u", tab);
	while(tab[i]!=-1)
	{
		if(i>n)
		{
		 	realloc(tab,((n+1)*sizeof(int)));
		 	n=n+1;
		}
		i++;
		scanf("%u", &tab[i]);
	}
	while(i>0)
	{
	i--;
	printf("%u ", tab[i]);
	}
	return 0;
} 

no ale wypisuje mi w niektorych miejscach duze liczby, jakich nie wpisalem... co jest nie tak?

0

if(i+1>=n) lub if(i+2>n)

1 użytkowników online, w tym zalogowanych: 0, gości: 1