3

私は一定のサイズの2次元整数配列を持っています。

int array[SIZE_1][SIZE_2];

p2次元配列の「行」をポインタに割り当てることができるように、ポインタを宣言したいと思います。

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 に答える