我具有恆定大小的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
?
我具有恆定大小的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
?
你都指向一個整數數組(行): -
int *p = array[index];
so,
p[1] == array[index][1];
這也適用於: -
int array[SIZE_1][SIZE_2];
int (*p)[SIZE_2] = array;
如果你想有一個指向一個特定的陣列大小,你可以使用某物。像這樣:
....
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
謝謝你,先生! – simon