2012-09-03 161 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