mingw gcc 3.4.5 compiliert code den er eigentlich nicht sollte
-
Hi,
ich hab gelernt, dass dieser Code hier falsch ist und er wird auch vom MS Compiler nicht compiliert, aber vom mingw wird er compiliert. Warum? und was passiert da genau? Woher kommt der benötigte Speicher und wie wird er wieder freigegeben?
#include <iostream> using namespace std; int main() { int y; cin>>y; int x[y]; }
mfg walljumper
-
Sowas nennt man einen VLA (Variable Length Array).
Ist ein Feature kein Bug
Such einfach mal bei google danach.
-
Ist das also fest im C++ Standard? Ich find nur was von wegen C99
Ist doch irgendwie doof wenn ich das Projekt dann nur mim gcc compilieren kann.
-
walljumper schrieb:
Ist das also fest im C++ Standard?
Nein, das ist kein Standard-C++. Das ist eine Erweiterung des GNU-Compilers.
-
Sagen wir dass ein Feature aus ISO C99, welches als Erweiterung von GNU auch unter C++ zur Verfügung gestellt wird.
Kompilier mal mit -std=c++98 (Default ist -std=gnu++98) oder -ansi (schaltet GNU-Erweiterungen grundsätzlich ab).
-
Ich dank euch, habt mir sehr geholgen.
mfg walljumper