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

Zmienna jako liczba elementów tablicy statycznej.

Ostatnio zmodyfikowano 2017-10-09 21:47
Autor Wiadomość
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ć:

C/C++
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
P-165582
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++.
P-165583
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.
P-165587
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.
P-165588
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ą.
P-165592
« 1 »
  Strona 1 z 1