私の大学のスクリプトでは、実行時にローカルな配列を作成することは許可されていないと書かれています。実行時に認識されるサイズの配列を作成できるのはなぜですか?
float x [size] [2];
宣言された配列は実行時サイズを持つことができないため、これは機能しません。ベクトルを試してみてください:
から:C++ expected constant expression
しかし、このコードは編集
#include <iostream>
int main(){
int i = 5;
int x;
std::cin >> x;
int array[x];
for(int i = 0; i<x; ++i){
std::cout << array[i] << "\n";
}
}
8.0.0のApple LLVMの下でコンパイルされます。そして、正常に動作します。ガベージを期待どおりに印刷します。
注意:このプログラムは意味をなすものではありません。
これは非標準のコンパイラ拡張です。 '-pedantic-errors'でコンパイルすると、それを拒否すべきです。 – Galik