自動および静的配列のサイズを宣言するために使用できる定数は、 です。この目的のために定数を使用しないのは、コンパイルエラーです。なぜ「定数のみを使って自動配列と静的配列のサイズを宣言できますか?
さんピアソン。
しかし、次の作品は問題ありません。ピアソンによると、それはうまくいかない(私は思う)。これを理解するのを助けることができますか? GNUコンパイラで見つかったC++の拡張機能だが、それは、C++標準に準拠していない
#include <iostream>
using namespace std;
int main()
{
int in;
cin >> in;
int a[in];
a[4] = 412;
int i = 0;
while(i<5){
cout << i << ":" << a[i] << endl;
i++;
}
}
これは、C言語(C++ではなく、C++には可変長配列はありません)にのみ適用され、それをサポートする新しい標準とコンパイラを使用しているからです(Cを使用している場合)。 – Marlon
コンパイラ*で*と動作しますか? – jamesdlin
これは役に立つかもしれませんが、どのコンパイラが使用されているかわからないと確認できません。ドキュメント(Pearson)が参照する言語のバージョンのように動作するように、コンパイラを説得することができます。 gcc/g ++の場合、コマンドラインオプション '-std ='は特定の言語バージョンに設定することができます。 '-std = C++ 98'です。また、gccのドキュメントでは、より正確なメッセージを得るために '-pedantic'を使うことを推奨しています。これは正確ではないかもしれませんが、参考になるかもしれません。 – gbulmer