Как сделать указатель на двумерный массив указателей в c++?

Допустим у меня есть массив указателей:

int *arr[8][8];

Как мне объявить указатель на этот массив?


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

Автор решения: HolyBlackCat

Указатель на целый массив вот так: int *(*ptr)[8][8];. Здесь тот же принцип, что и в приоритетах операторов: сначала применяются штуки справа от имени, а потом слева; если это не изменяется скобками.

       ptr          // ptr - это
      *ptr          // указатель на
     (*ptr)         // ...
     (*ptr)[8]      // массив из 8
     (*ptr)[8][8]   // массивов из 8
    *(*ptr)[8][8]   // указателей на
int *(*ptr)[8][8]   // int

Если нужен указатель на один элемент массива (один подмассив), а не на весь, то убрать одну [8].

→ Ссылка
Автор решения: user7860670
using t_MyArray = int * [8][8];

t_MyArray arr;
t_MyArray * p_arr;
→ Ссылка
Автор решения: Harry

Ну раз уже два варианта есть... Бог любит Троицу :)

typedef int* array[8][8];
array * ptr;

Кстати, в помощь см. тут.

→ Ссылка