我有一个常量大小的二维整数数组,我将其声明为
int array[SIZE_1][SIZE_2];
我想声明一个指针p
,以便我可以为它分配一个二维数组的“行”,即
p = array[index];
我尝试将p
声明为
int (* p)[SIZE_2];
但是这给了我一个"assignment from incompatible pointer type"
警告(关于MinGW的GCC)。
那么如何正确声明p
?
答案 0 :(得分:3)
你指向一个整数数组(Row): -
int *p = array[index];
so,
p[1] == array[index][1];
这也有效: -
int array[SIZE_1][SIZE_2];
int (*p)[SIZE_2] = array;
答案 1 :(得分:0)
如果你想要一个指向特定大小的数组的指针,你可以使用......像这样:
....
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