获取指向二维数组中元素的指针

时间:2012-11-22 15:12:54

标签: c multidimensional-array

如果我有这个数组:

#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])是否有更简单的方法?

2 个答案:

答案 0 :(得分:4)

这个怎么样:

return & foo[i][j];

答案 1 :(得分:2)

你的方法错了:

*foo + i * b + j

取消引用指针foo并为其值添加一些内容。你想要的是:

foo + i * b + j

由于索引表示法也取消引用指针,因此必须再次引用它:

&foo[i][j]