これは、動的に C で行列 (2D 配列) を作成し、ユーザー入力をその要素に読み込む唯一の方法です。
x
各ポインターがマトリックス内の行を表すポインターの配列へのポインターを作成すると、マトリックス内x
の行の数 (高さ) になります。この配列内の各ポインターを
y
要素を持つ配列にポイントします。ここy
で、 は行列の列数 (幅) です。
int main()
{
int i, j, lines, columns, **intMatrix;
printf("Type the matrix lines:\t");
scanf("%d", &lines);
printf("Type the matrix columns:\t");
scanf("%d", &columns);
intMatrix = (int **)malloc(lines * sizeof(int *));
//pointer to an array of [lines] pointers
for (i = 0; i < lines; ++i)
intMatrix[i] = (int *)malloc(columns * sizeof(int));
//pointer to a single array with [columns] integers
for (i = 0; i < lines; ++i)
{
for (j = 0; j < columns; ++j)
{
printf("Type a number for <line: %d, column: %d>\t", i+1, j+1);
scanf("%d", &intMatrix[i][j]);
}
}
これを行う他の方法はありますか?