Rozmiar tablicy wpisywany z klawiatury? To nie powinno działać.
Ostatnio zmodyfikowano 2009-08-24 00:08
aRusher Temat założony przez niniejszego użytkownika |
Rozmiar tablicy wpisywany z klawiatury? To nie powinno działać. » 2009-08-23 15:08:29 Uczyłem się, że rozmiar tablicy musi być stałą całkowitą większą od zera, znaną już na etapie kompilacji (nie mówię tutaj o dynamicznej alokacji tablicy). Z ciekawości napisałem w Devie taki kodzik: #include <iostream> int main() { int rozmiar; std::cin >> rozmiar; char tabl[rozmiar]; std::cout << sizeof(tabl) << std::endl; std::system("pause"); }
Prolem w tym, że nie ma żadnego błędu kompilacji, co gorsza, wypisuje mi rozmiar tablicy taki sam, jaki podałem z klawiatury. Jakieś wyjaśnienie? |
|
eBbi |
» 2009-08-23 15:15:46 noto widocznie da się i tyle ;p. No ale jak byś chciał zrobić globalną tablice to tak nie zainicjujesz jej wielkości. |
|
aRusher Temat założony przez niniejszego użytkownika |
» 2009-08-23 15:46:52 VLA? |
|
aRusher Temat założony przez niniejszego użytkownika |
» 2009-08-23 23:11:57 Ok, dzięki za odpowiedzi. Mimo, że jest taka opcja jak VLA, nie sądzę, bym powinien jej używać, prawda? |
|
WunM |
» 2009-08-24 12:17:24 Zresztą w C++ już lepiej użyć wektora (lub innego kontenera), niż "zwykłej" tablicy. |
|
manfred |
» 2009-08-23 15:31:01 Rozszerzenie GCC i tyle. Żaden inny kompilator C++ nie udostępnia VLA (C to co innego, bo tam VLA są w standardzie). |
|
manfred |
» 2009-08-23 16:12:38 Variable-length array. |
|
manfred |
» 2009-08-24 00:08:19 W C++ czegoś takiego nie ma, to tylko dobra wola gcc (tylko zawsze mogą to usunąć w którejś wersji), że takie coś udostępnia. Już lepiej (też niestandardowa, ale prawie wszędzie występuje) użyć funkcji alloca(). |
|
« 1 » |