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

2014-12-21 16:05
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.

edytowany 1x, ostatnio: Kadobe, 2014-12-21 16:05
Nie używaj prefiksów/sufiksów w tytułach wątków - od podawania nazwy języka/technologii są tagi; - furious programming 2014-12-21 17:41

Pozostało 580 znaków

2014-12-21 16:12
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));

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Pokaż pozostałe 14 komentarzy
@furious programming mam odpowiadać post pod postem? @Kadobe, to dla tego że nie ogarniasz podstaw z podstaw, zacznij od jakiegoś kursu. Jak nie działa to pokaż kod lub idź do wróżbitów. - _13th_Dragon 2014-12-21 17:48
Lepsze to, niż przerzucenie połowy wątku do komentarzy; Z resztą możesz zwrócić uwagę młodszym stażem, zamiast się dokładać; - furious programming 2014-12-21 20:13
Dopóki dyskutujemy nad kodem w tym poście a nie nad podstawowym tematem, szczerzę mówiąc nie widzę sensu ... - _13th_Dragon 2014-12-21 21:12
Komentarze nie służą do dyskusji na poruszany temat, a Wy dyskutujecie właśnie na temat - jeżeli tak nie jest, to Twój kod nie dotyczy tematu; Więc czy widzisz w tym sens czy nie - dyskutujcie w postach, a komentarze zostawcie na offtop; - furious programming 2014-12-21 21:17
Jeszcze raz: - dyskutowaliśmy w tej serii komentarzy nie na poruszany temat zaś o przedstawionym kodzie w tym konkretnym poście - czyli typowy offtop. - _13th_Dragon 2014-12-21 21:22

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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