Jako argument funkcji, wysyłanie takiej tablicy jest proste:
void func(int *tab[6][6]) {
*(tab[0][0]) = 1234;
}
Problem pojawia się ze zwracaniem. Żeby to zrobić, musisz ją dynamicznie alokować, co wiąże się z późniejszym usuwaniem jej, o czym także można zapomnieć. Generalnie jest to skomplikowane. Lepiej już tutaj użyć tego wektora.
Napisałem funkcje zwracającą taką tablicę. Nie jestem pewny czy zrobiłem to dobrze, ale może ci to zobrazować jakie to zawiłe:
int ***returnFilledArray() {
int ***tab = new int**[6];
for (int i = 0; i < 6; i++) {
(tab[i]) = new int*[6];
for (int x = 0; x < 6; x++)
*(tab[x]) = new int;
}
for (int y = 0; y < 6; y++)
for (int x = 0; x < 6; x++)
*(tab[y][x]) = y * 6 + x;
return tab;
}