Выделите память для 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;
}

Программа выводит правильно любой ввод.

Но это показываетОшибка выполнения  , Зачем?

Ответы на вопрос(2)

Ваш ответ на вопрос