Вы не можете, потому что тип ptr
неправильный. Переменная должна быть объявлена как int(*)[2]
(указатель на массив целых чисел размера 2). Тогда вы можете просто использовать ptr[0][1]
.
#include <cstdio>
int main () {
int (* ptr) [2]; // <--
int ary [10][2];
ptr = ary;
ary[0][1] = 5;
printf("%d\n", ptr[0][1]);
return 0;
}
Если вы должны использовать int*
, вам нужно ввести reinterpret_cast
. Индексы массива выложены так:
0 1 2 3 2*n 2*n+1
[0][0] [0][1] [1][0] [1][1] ... [n][0] [n][1]
чтобы вы могли использовать ptr[1]
для получения ary[0][1]
.
#include <cstdio>
int main () {
int* ptr;
int ary [10][2];
ptr = reinterpret_cast<int*>(ary); // <--
ary[0][1] = 5;
printf("%d\n", ptr[1]);
return 0;
}