2012-09-03 119 views
3

我具有恒定大小的2维整数阵列,我声明为指向在恒定大小2D阵列1D阵列

int array[SIZE_1][SIZE_2];

我想声明指针p这样我可以分配一个的2维阵列,以它的 “行”,即

p = array[index];

我试图宣布p作为

int (* p)[SIZE_2];

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

那么我该如何正确申报p

回答

3

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

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

这也适用于: -

int array[SIZE_1][SIZE_2]; 
int (*p)[SIZE_2] = array; 
+2

谢谢你,先生! – simon

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