【C言語】2次元配列を初期化する方法を解説

この記事では、C言語における2次元配列の初期化方法について解説します。

目次から探す

2次元配列の初期化方法

プログラミングにおいて、2次元配列は複数の要素を格納するための便利なデータ構造です。

2次元配列を使用する際には、適切な初期化が必要です。

静的な初期化

静的な初期化は、プログラムのコンパイル時に配列の要素を指定して初期化する方法です。

以下に、静的な初期化の例を示します。

int array[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

上記のコードでは、3×3の2次元配列を宣言し、各要素に値を指定しています。

最初の中括弧 {} は行を表し、その中にカンマ , で区切られた要素が列ごとに指定されています。

このように静的な初期化を行うことで、プログラム実行時に配列が初期化されます。

動的な初期化

動的な初期化は、プログラムの実行時に配列の要素を指定して初期化する方法です。

以下に、動的な初期化の例を示します。

int rows = 3;
int cols = 3;
int** array = (int**)malloc(rows * sizeof(int*));
for (int i = 0; i < rows; i++) {
    array[i] = (int*)malloc(cols * sizeof(int));
}
array[0][0] = 1;
array[0][1] = 2;
array[0][2] = 3;
array[1][0] = 4;
array[1][1] = 5;
array[1][2] = 6;
array[2][0] = 7;
array[2][1] = 8;
array[2][2] = 9;

上記のコードでは、malloc 関数を使用して動的にメモリを確保し、2次元配列を作成しています。

malloc 関数は、指定したバイト数のメモリを確保し、その先頭アドレスを返します。

各行ごとにメモリを確保し、その後、要素に値を指定しています。

動的な初期化を行う場合は、配列のメモリを解放する必要があります。

以下のコードを使用して、メモリを解放します。

for (int i = 0; i < rows; i++) {
    free(array[i]);
}
free(array);

以上が、C言語における2次元配列の初期化方法です。

静的な初期化ではコンパイル時に初期化が行われ、動的な初期化では実行時に初期化が行われます。

適切な初期化方法を選択し、プログラムに組み込んでください。

静的な初期化では、配列の要素数が固定されているため、要素数を変更する場合にはコードを修正する必要があります。

動的な初期化では、実行時にメモリを確保するため、柔軟に要素数を変更することができますが、メモリの解放を忘れないように注意してください。

目次から探す