2

この配列がある場合:

#define a 10
#define b 20

int foo[a][b];

次のようにポインターを取得できますfoo[i][j]

int *pointerToElement(i, j)
{
    return *foo + i * b + j;
}

インデックス表記 ( *foo[i][j]) を使用した簡単な方法はありませんか?

4

2 に答える 2

4

これはどう:

return & foo[i][j];
于 2012-11-22T15:14:48.953 に答える
2

あなたの方法は間違っています:

*foo + i * b + j

これにより、ポインターが逆参照fooされ、その値に何かが追加されます。あなたが望むものは:

foo + i * b + j

また、インデックス表記もポインターを逆参照するため、再度参照する必要があります。

&foo[i][j]
于 2012-11-22T15:16:38.423 に答える