以下のコードスニペットを使用して、最小数のmalloc()
呼び出しを使用して2D配列にメモリを割り当てています。
下付き文字p[i][j]を使用して配列にアクセスしたいと思います。
#define ROW 3
#define COL 2
int main()
{
void **ptr = malloc( ROW*COL* sizeof(int) );
int (*p)[COL] = ptr;
int i, j;
for( i = 0; i < ROW; ++i )
for( j = 0; j < COL; ++j )
scanf("%d", &ptr[i][j]);
for( i = 0; i < ROW; ++i )
{
for( j = 0; j < COL; ++j )
printf("%d ", p[i][j]);
printf("\n");
}
return 0;
}
プログラムは、入力が何であれ、正しく出力しています。
ただし、 ランタイムエラーが表示されています 。なんで?