これは C99 で有効です。
C99 標準は、スタック上の可変サイズの配列をサポートしています。おそらく、あなたのコンパイラもこの構造をサポートすることを選択しています.
これは malloc
とは異なることに注意してください と new
. gcc
int array[100]
の場合と同様に、配列をスタックに割り当てます スタックポインタを調整するだけです。ヒープ割り当ては行われません。 _alloca
によく似ています。 .
これは、VLA (可変長配列) として知られています。これは c99 では標準ですが、gcc では拡張機能として c++ コードで使用できます。コードを拒否したい場合は、-std=standard
を試してみてください。 、 -ansi
そして -pedantic
オプション。
C99 でのみ有効です。次回は、信頼できるコンパイラでコードをチェックしてみてください。