c - 指向二维数组的指针数组,读取不正确的值

标签 c arrays pointers multidimensional-array

我需要一些关于使用指针访问二维数组的帮助。

我有 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 等也是如此

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

最佳答案

索引运算符 [] 比间接运算符 * 有更高的优先级,所以你必须使用括号来取消引用数组的指针。

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

关于c - 指向二维数组的指针数组,读取不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35881904/

相关文章:

c - 使用 GNU SGL 库生成随机数

java - java中的零长度数组

javascript - 如何在原型(prototype)函数中访问javascript对象数组

c - 通过指针访问结构中的结构

c++ - 数组折叠成单个元素

c - 为什么打印 uint8_t 数组会显示不同的值?

c - 如何找到缓冲区溢出和内存损坏的地方?

arrays - 在 Bash 中获取关联数组( double )部分的长度

c - 函数指针执行错误

c - 黑鳍金枪鱼。使用 BF537 EZ-KIT 进行 2D DCT/IDCT(图像压缩),如何从 BF537 内存写入文件(在磁盘上)重建图像(原始像素数据)?