我使用下面的代碼片段爲最小數量的malloc()
調用分配二維數組的內存。用最小數量的malloc調用分配二維數組的內存
我想用下標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;
}
程序正確輸出任何輸入。
但是,它顯示Runtime error。爲什麼?
不,你所看到的輸入。該程序不輸出任何東西。 –
不應該將'scanf'輸入讀入'p',而不是'ptr'? –
是的,明白了。我想睡覺。我的錯。 –