Аргумент типа int(*)[3] несовместим с параметром типа int**

Пишу на с++. В моей программе есть функция, которая по часовой стрелке поворачивает квадратную матрицу размера, заданного пользователем. Матрица, естественно, создается и заполняется перед вызовом этой функции.

void turn_array (int *.*arr, int num)
{
    int tmp;
    for (int i = 0; i < num / 2; i++)
    {
        for (int j = i; j < num - 1 - i; j++)
        {
            tmp = arr[i][j];
            arr[i][j] = arr[num - j - 1][i];
            arr[num - j - 1][i] = arr[num - i - 1][num - j - 1];
            arr[num - i - 1][num - j - 1] = arr[j][num - i - 1];
            arr[j][num - i - 1] = tmp;
        }
    }
}

С ней все вроде как в порядке, она работает. По моему заданию я должен создать отдельный модуль, чтобы проверить правильность ее работы. В нем я создаю матрицу заранее заданного размера и заполняю определенными мной числами, чтобы можно было потом сравнить ее с повернутой "вручную".

int test_matrix[3][3] =
    {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

Когда я пытаюсь передать ее в turn_array я получаю ошибку "аргумент типа int(*)[3] несовместим с параметром типа int**", и у меня нет ни единой идеи как ее исправить.


Ответы (0 шт):