Ich habe den folgenden Code:
...
int n;
cin >> n;
int numbers[n];
...
Es kompilierte mit NetBeans auf Mac mit g++ (ich glaube) und es kompilierte nicht mit VS2008 auf Windows. Warum ist es so schwer, es mit jedem Compiler zum Laufen zu bringen? Die Größe des Arrays ist bekannt, bevor es zugewiesen wird.
EDIT: Ich weiß von std::vector
. Eigentlich war dies Teil einer Hausaufgabe und ich begann es bei der Arbeit auf einem Mac, dann kam ich nach Hause und war überrascht, dass es nicht auf VS2008 funktionierte. Danke für die vielen Antworten. Aber ich finde es immer noch logisch, dass, wenn der Compiler einen Code erzeugen kann wie alloc(123)
wo der Wert 123 hart kodiert ist, warum kann es nicht etwas generieren wie alloc(n)
wo Sie n
von einer Speicheradresse, die eine int n
oder so ähnlich. Es scheint einfach logischer zu sein, so etwas standardmäßig zuzulassen.