Array[n] と Array[10]: 配列サイズの変数の初期化と数値リテラルの違い
C プログラミングでは、配列データの保存と取得において重要な役割を果たします。ただし、配列の初期化を行う場合、特に可変長配列の使用に関連した落とし穴がある可能性があります。
次のコード スニペットを考えてみましょう。
int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
このコードは初期化を目的としています。 TenorData という名前の配列。サイズは変数 n によって決定され、10 に設定されます。ただし、この方法では、可変サイズのオブジェクト tenorData を使用できないことを示すコンパイル エラーが発生します。
このコードの主な違いは、配列のサイズを定義するために変数 n を使用することにあります。 C では、可変長配列はサポートされていません。つまり、配列のサイズはコンパイル時に既知の定数でなければなりません。
この問題を解決して配列を正常に初期化するには、いくつかのオプションが使用できます。
double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
const int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = 10; double* tenorData = new double[n];
配列の使用が完了したら、delete [] tenorData を使用してメモリの割り当てを解除することを忘れないでください。
int n = 10; std::vector<double> tenorData(n);
これらのガイドラインに従うことで、可変長配列に伴う落とし穴を回避しながら、C で配列を効果的に初期化できます。
以上がC での配列の初期化: `Array[n]` と `Array[10]` – 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。