int num = atoi(argv[1]);
unsigned long times[num];
私はこのコードを持っていますが、コンパイラがコンパイル時に知らないコマンドライン引数からの値を使用して配列を割り当てようとしているため、コンパイルされないと想定しました。しかし、このコードをコンパイルしたところ、うまくいきました。誰かがここで何が起こっているのか説明できますか?? 静的割り当ての基本概念を誤解していますか??
C99 では、var を使用して配列を割り当てることができます。これは、VLA とも呼ばれる可変長配列と呼ばれます。
私は C99 を手元に持っていません。セクションは C99 の 6.7.5.2 で、次のリンクはインターネットからのものです。
vla は c++ ではサポートされていないことに注意してください。詳細はこちら