整数の二乗を入力したいとします。各行では、整数の各ペアがスペースで区切られています。したがって、次のコードは問題なく機能します。
//size of the square
int N;
scanf("%d",&N);
int **c;
c = malloc(N*sizeof(int*));
for (i=0;i<N;i++)
{ c[i] = malloc(2*sizeof(int));
for (j=0;j<2;j++)
{scanf("%d",&c[i][j]);}
}
だからここでは、スペースが考慮されない理由がわかりません(なぜそれが機能しているのでしょうか:-))?逆に、配列 c[N][N] を使用した場合、各スペースが配列の入力として解釈されてしまうため、機能しませんでした。