私は学校でコンピュータサイエンスのクラスを受講しましたが、先生は動的メモリ割り当てとその理由について話していました。
cin>>size;
int array[size]; // According to him this should result in a compiler error
これは機能しないはずであり、代わりに次のものを使用することになっています。
int *p, size;
cin>>size;
p = new int[size]
...
delete[] p;
私の質問は、そのような動的配列を宣言できない場合、なぜ最初の例が機能するのかということです。
更新:すべてのテストはGNU GCC Complilerで行われ、上記のコードはmain関数内にあります