指向2D数组的指针数组,读取不正确的值

时间:2016-03-09 02:40:05

标签: c arrays pointers multidimensional-array

我需要一些帮助才能使用指针访问2D数组。

我有8个全局字符数组声明如下:

char s1[4][16], s2[4][16], ... , s8[4][16];

它们的值稍后在主函数中设置。

我有一个指向这些数组的8个指针数组,

char (*s[8])[4][16];

此数组中的每个指针都分配如下:

s[0] = &s1;
s[1] = &s2;
..
..
s[7] = &s3;

现在要访问s1的元素, 我做*s[0][i][j],但是我没有得到与s1相同的值。 s2s3等的情况也是如此。

有人可以告诉我出了什么问题吗?

1 个答案:

答案 0 :(得分:7)

索引运算符[]的优先级高于间接运算符*,因此必须使用括号来取消引用指向数组的指针。

尝试(*s[0])[i][j]