Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++][Visual Studio 2013] Deklarowanie tablic

Ostatnio zmodyfikowano 2014-03-18 17:25
Autor Wiadomość
Hipochondryk
Temat założony przez niniejszego użytkownika
» 2014-03-17 17:25:35
może i nie zmienili Moniko, ale dla mnie to zmiana po przesiadce z deva na Visuala, dlatego pytałem :)
P-106646
OczkoSX
» 2014-03-17 17:49:45
TO:
//pseudokod
int n;
cin>>n;
const int x =n;
int tab[n];

Tobie nie działało ponieważ próbowałeś przypisać wartość do stałej... logiczne :D
Od siebie odradzam tablice dynamiczne, i zalecam zastosowanie Vectora. Prosty w użyciu, nie ma zabawy ze wskażnikami. Nie trzeba zwalniać pamięci :D
P-106648
Hipochondryk
Temat założony przez niniejszego użytkownika
» 2014-03-17 18:18:02
o widzę , że błąd zrobiłem :D
int n;
cin>>n;
const int x =n;
int tab[x];
miałem na myśli to :)
no a do stałej kiedyś trzeba przypisać wartość :)
P-106651
michal11
» 2014-03-17 18:27:48
OczkoSX chodziło o ten fragment
const int x = n;
P-106652
OczkoSX
» 2014-03-17 18:56:51
Do stałej przypisuje się wartość przed kompilacją, np const int stała = 15;
P-106653
Monika90
» 2014-03-17 19:03:29
Do stałej przypisuje się wartość przed kompilacją, np const int stała = 15;

Albo po kompilacji.
const int n = read_int( std::cin );
P-106654
OczkoSX
» 2014-03-17 20:48:29
A nie wiedziałem. Wczytuje wartość z strumienia?
P-106667
Adik80
» 2014-03-18 13:17:24
Ale przypisanie wartosci do stalej przed i po kompilacji troche sie rozni. Jesli stala przypisana jest przed kompilacja to kompilator wstawi wartosc w kodzie i taki zapis jest poprawny:

C/C++
conts int n = 15;
int tab[ n ];

jesli do stalej jest przypisywana jest wartosc w czasie dzialania (np. tak jak napsiala Monika) to kompilator uzywa zmiennej i taki zapis jest niepoprawny:

C/C++
const int n = read_int( std::cin );
int tab[ n ];

Wyjatkiem jest gcc, gdzie VLA jest dostepne w c++ jako rozszerzenie. Rozwiazaniem ma byc dynarray, ale to ma byc chyba dopiero w c++14.
P-106683
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona