重複の可能性:
C++ の書籍では、バインドされた配列は定数式でなければなりませんが、次のコードが機能するのはなぜですか?
main() 内でこれを行います。
int i = 2; //not constant expression
int foo[i]; //no error?
私の本によれば、これは私にエラーを与えません。なんで?
(私はclang 3.1を使用しています)
重複の可能性:
C++ の書籍では、バインドされた配列は定数式でなければなりませんが、次のコードが機能するのはなぜですか?
main() 内でこれを行います。
int i = 2; //not constant expression
int foo[i]; //no error?
私の本によれば、これは私にエラーを与えません。なんで?
(私はclang 3.1を使用しています)
厳密な警告を有効にしてコンパイルしてください。
-pedantic
gcc を使用すると、エラーが発生します。
ほとんどのコンパイラは、言語拡張によって可変長配列 (VLA) をサポートしています。ただし、C++ 言語標準は、言語の一部として VLA をサポートしていません。
ISO C99 では可変長の自動配列が許可されています。