我需要一些关于使用指针访问二维数组的帮助。
我有 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
等也是如此
有人可以告诉我出了什么问题吗?
最佳答案
索引运算符 []
比间接运算符 *
有更高的优先级,所以你必须使用括号来取消引用数组的指针。
尝试做 (*s[0])[i][j]
。
关于c - 指向二维数组的指针数组,读取不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35881904/