• 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 ?

VPS Starter Arubacloud
0 głosów
196 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,475 wizyt
0 głosów
3 odpowiedzi 918 wizyt
pytanie zadane 29 maja 2016 w C i C++ przez 1naswiecie Początkujący (410 p.)
+2 głosów
3 odpowiedzi 2,962 wizyt

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...