Zmienna jako liczba elementów tablicy statycznej.
Ostatnio zmodyfikowano 2017-10-09 21:47
fingerprint Temat założony przez niniejszego użytkownika |
Zmienna jako liczba elementów tablicy statycznej. » 2017-10-09 19:52:26 Według dostępnej literatury nie można w C++ deklarować tablicy statycznej, której liczba elementów określona jest przez zmienną. Kod tego typu nie powinien się kompilować: int n = 100; int tablica[ n ];
. Jednak Dev C++ kompiluje taki kod, nie zwracając nawet ostrzeżeń. VisualStudio zwraca błąd informując o tym, że nie zmienna nie może być użyta jako liczba elementów tablicy. Xcode na macu zwraca tylko ostrzeżenie i kod kompiluje. Może ktoś wie o co chodzi. Pozdrawiam |
|
YooSy |
» 2017-10-09 19:56:46 Zmienna może być użyta w deklaracji tablicy jako jej rozmiar, jednak wg standardu musi być stałą. constexpr
Niektóre kompilatory zachowały VLA jako niestandardowe rozszerzenie. Nie należy go stosować w C++. |
|
fingerprint Temat założony przez niniejszego użytkownika |
» 2017-10-09 20:14:53 To, że nie jest to zgodne ze stanardem C++ to wiem, zastanawiam się tylko, czemu to działa. Rozumiem, że to Dev C++ wykorzystuje kompilator nie spełniający standardów. |
|
Kinexity |
» 2017-10-09 20:19:38 Nie tyle "nie spełniający standardów", co po prostu z drobnym rozszerzeniem. Po prostu zostało to uznane, za przydatne (np. gdy nie chcesz używać dynamicznej alokacji w ogóle, to ci się to przyda). Zresztą w którymś pliku roboczym odnośnie proponowanych rozszerzeń C++ było to jako propozycja do standardu. |
|
mokrowski |
» 2017-10-09 21:47:27 Dodaj do kompilatora przełączniki ostrzeżeń. Dla g++ będzie to:
-Wall -Wextra -pedantic
Dostaniesz wtedy informację o łamaniu standardu. Dodatkowo być może warto wymuszać standard przez:
--std=c++11
.. lub inne które Cię interesują. |
|
« 1 » |