Выделите память для 2D-массива с минимальным количеством вызовов malloc
Я использую приведенный ниже фрагмент кода, чтобы выделить память для 2D-массива, используя минимальное количество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;
}
Программа выводит правильно любой ввод.
Но это показываетОшибка выполнения , Зачем?