3

我有一个恒定大小的二维整数数组,我声明为

int array[SIZE_1][SIZE_2];

我想声明一个指针p,以便我可以将二维数组的“行”分配给它,即

p = array[index];

我试过声明p

int (* p)[SIZE_2];

但这给了我一个"assignment from incompatible pointer type"警告(MinGW 上的 GCC)。

那么如何p正确申报呢?

4

2 回答 2

3

您指向一个整数数组(行):-

 int *p = array[index];
 so,
 p[1] == array[index][1]; 

这也有效:-

int array[SIZE_1][SIZE_2];
int (*p)[SIZE_2] = array;
于 2012-09-03T15:41:48.523 回答
0

如果你想要一个指向特定大小数组的指针,你可以使用 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

于 2012-09-03T16:04:03.323 回答