Dynamiczna alokacja pamięci w pętli za pomocą malloc

0

Witam, piszę program, który ma pobierać z klawiatury liczby dopóki te, podawane są z zakresu [-10;10], muszę zapisywać je do tablicy, ponieważ w dalszym poleceniu program musi wykonywać odpowiednie instrukcje w zależności od wczytanych liczb. Chciałbym w tym celu wykorzystać funkcje malloc, jednak niezbyt wiem w jaki sposób obliczać rozmiar w pętli while.

Napisałem coś takiego:

        while(x>=-10&&x<=10){
		scanf("%d",&x);
		rozmiar++;
		tab=(int *)malloc(rozmiar*sizeof(int));
		tab[rozmiar]=x;
	}

zdaję sobie sprawę, że "rozmiar" w malloc nie ma sensu. Pytanie brzmi w jaki sposób na bieżąco można dodawać kolejne komórki do tablicy dynamicznie? Z góry dziękuję za pomoc.

0
size_t count=0,capacity=8;
int x,*tab=(int*)malloc(capacity*sizeof(int));
while((scanf("%d",&x)==1)&&(-10<=x)&&(x<=10))
  {
   if(count>=capcity) tab=(int*)realloc(tab,(capacity<<=1)*sizeof(int));
   tab[count++]=x;
  }
tab=(int*)realloc(tab,count*sizeof(int));

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