• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Stworzenie tablicy czy wskaznika w dynamicznym rezerwowaniu komorek ?

Object Storage Arubacloud
0 głosów
241 wizyt
pytanie zadane 5 listopada 2016 w C i C++ przez czujek22 Dyskutant (7,670 p.)

Witam. Tworząc program i przerabiając odcinek 10 kursu nęci mnie jedno pytanie.

Otóż dlaczego lepiej jest rezerwowac idealną ilość komórek w pamięci poprzez wskaźnik skoro można to też zrobić zwykłą tablicą ?

 

Chodzi o fragment:    

double *liczby;
liczby = new double [ile];

A czy nie można po prostu:

double liczby[ile];

w programie poniżej ?

 

int main()
{

    int ile;

   cout<<"Ile liczb podasz do wyliczenia sredniej? ";
   cin>>ile;

   double *liczby;
   liczby = new double [ile];

   for(int i=0;i<ile;i++)
   {
         cout<<"Podaj liczbe: ";
         cin>>liczby[i];
   }

   cout<<"Srednia podanych liczb wynosi: "<<srednia(liczby, ile);

    delete [] liczby;
    return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 5 listopada 2016 przez iWantCode Bywalec (2,170 p.)
wybrane 5 listopada 2016 przez czujek22
 
Najlepsza
Nie możesz ponieważ podczas kompilowania programu nie wiesz ile komórek będzie ci potrzebne, więc zapis: "double liczby[ile];" jest niemożliwy, ponieważ w trakcie kompilacji musisz znać rozmiar tablicy. Musisz skorzystać z dynamicznej alokacji pamięci -> http://cpp0x.pl/kursy/Kurs-C++/Dynamiczne-zarzadzanie-pamiecia-new-i-delete/307 , lub list -> https://pl.wikibooks.org/wiki/C%2B%2B/Listy.
1
komentarz 5 listopada 2016 przez Avernis Nałogowiec (27,400 p.)
Jak odpalam taki program to działa
komentarz 5 listopada 2016 przez CzikaCarry Szeryf (75,340 p.)
Działa, ponieważ niektóre kompilatory akceptują taki zapis, ale ogólnie przyjęło się używać dynamicznej alokacji pamięci.
0 głosów
odpowiedź 5 listopada 2016 przez Kasztan Dyskutant (8,080 p.)
na Visual Studio zapis, który chciałbyś wprowadzić nawet nie przejdzie :D
komentarz 5 listopada 2016 przez iWantCode Bywalec (2,170 p.)
A gdzie mu przejdzie?
komentarz 5 listopada 2016 przez czujek22 Dyskutant (7,670 p.)
W CodeBlocks przeszlo
komentarz 5 listopada 2016 przez Kasztan Dyskutant (8,080 p.)
No w CodeBlocks przejdzie

Podobne pytania

+1 głos
1 odpowiedź 1,492 wizyt
0 głosów
3 odpowiedzi 1,020 wizyt
pytanie zadane 29 maja 2016 w C i C++ przez 1naswiecie Początkujący (410 p.)
+2 głosów
3 odpowiedzi 3,012 wizyt

92,669 zapytań

141,567 odpowiedzi

320,033 komentarzy

62,034 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...