Для моего понимания указателей и массивов, если у меня есть 2d массив, как это:
int arr[3][4];
Если мне нужно сослаться на этот массив с помощью указателя, мне нужно объявить указатель следующим образом:
int (*ptr)[4];
ptr = arr;
или
int (*(*ptr)[3])[4];
ptr = &arr;
Второй подход дает это предупреждение
initialization from incompatible pointer type [-Wincompatible-pointer-types]
Мне нужно знать почему.
Спасибо