что могло бы повлиять на доступ к массиву или распределение памяти для этих двух случаев:
1.
    int **arr;
    arr = malloc( sizeof(int) * row * column );
2.
    int **arr;
    arr = malloc( sizeof(*arr) * row);
    for(i=0; i<row; i++)
        arr[i] = malloc( sizeof( **arr) * column));
