我有一个恒定大小的二维整数数组,我声明为
int array[SIZE_1][SIZE_2];
我想声明一个指针p
,以便我可以将二维数组的“行”分配给它,即
p = array[index];
我试过声明p
为
int (* p)[SIZE_2];
但这给了我一个"assignment from incompatible pointer type"
警告(MinGW 上的 GCC)。
那么如何p
正确申报呢?
您指向一个整数数组(行):-
int *p = array[index];
so,
p[1] == array[index][1];
这也有效:-
int array[SIZE_1][SIZE_2];
int (*p)[SIZE_2] = array;
如果你想要一个指向特定大小数组的指针,你可以使用 sth. 像这样:
....
typedef int AOFSIZE[SIZE_2]; // one row
int Array[SIZE_1][SIZE_2]; // our array
int rowindex = 1; // any row available
AOFSIZE *ptr = &Array[rowindex];
...
但这仅在某些情况下才勉强使用。
问候,
rbo