我正在使用下面的代码片段使用最少的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;
}
无论输入是什么,程序都会正确输出。
但是,它显示 Runtime error 。为什么?