我需要一些帮助才能使用指针访问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
相同的值。 s2
,s3
等的情况也是如此。
有人可以告诉我出了什么问题吗?
答案 0 :(得分:7)
索引运算符[]
的优先级高于间接运算符*
,因此必须使用括号来取消引用指向数组的指针。
尝试(*s[0])[i][j]
。