• 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
205 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,482 wizyt
0 głosów
3 odpowiedzi 971 wizyt
pytanie zadane 29 maja 2016 w C i C++ przez 1naswiecie Początkujący (410 p.)
+2 głosów
3 odpowiedzi 2,980 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...