C では、実行時に決定されるサイズで配列を宣言するという概念がしばしば懸念を引き起こします。 。しかし、最近奇妙なコード スニペットに出会ったことで、「動的割り当てを使用せずに配列を宣言しながら、実行時にサイズを指定するにはどうすればよいでしょうか?
次の C コードを考えてみましょう:
int main(int argc, char **argv) { size_t size; cin >> size; int array[size]; for (size_t i = 0; i < size; i++) { array[i] = i; cout << i << endl; } return 0; }
GCC などのコンパイラーは、可変サイズの配列を可能にする C99 の機能を採用しています。この革新的な機能により、実行中に決定できるサイズで配列をスタック上で宣言できるようになります。ただし、new や malloc による動的割り当てとは異なり、可変サイズの配列は、固定サイズの配列を宣言するのと同様に、スタック上にメモリを割り当てます。
可変サイズの配列は、動的割り当てを避けるため、動的割り当てよりもパフォーマンス上の利点があります。ヒープメモリ管理のオーバーヘッド。スタックにメモリを割り当てることで、これらの配列はメモリの断片化の可能性を減らし、プログラムのパフォーマンスを向上させます。
この機能は C99 に固有のものであり、古いバージョンの C 言語ではサポートされていないことを強調することが重要です。したがって、可変サイズの配列に依存するコードが見つかった場合は、ストレージ サイズのエラーを避けるために、必ず C99 準拠のコンパイラでコンパイルしてください。
以上が動的メモリ割り当てを使用せずに C で実行時サイズの配列を宣言するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。