我具有恒定大小的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