【发布时间】:2012-07-04 20:42:10
【问题描述】:
我很高兴在 GDB 中进行调试,然后我遇到了一个可能包含错误值的二维数组。 但是我似乎无法打印单个元素。
p array2D[0][0]
给我
无法对不完整类型执行指针数学运算,尝试强制转换为已知类型,或 void *。
我试图用谷歌搜索,但我找不到任何东西,我不确定我是否遗漏了一些明显的东西。
【问题讨论】:
-
看起来好像您正试图对引用模块内部定义的指针进行操作。能否提供
array2D的声明? -
p的类型是什么??
-
p是gdb中使用的打印命令,不是吗? -
具体来说,gdb 认为
array2D是什么类型?通过ptype array2D了解详情 -
我得到了答案。我使用一个变量(顺便说一句保持不变)而不是#define 作为索引之一。编译器一定对代码做了一些奇怪的事情。如果我使用#define,我可以通过以下方式查看它:p array2D[0][0]
标签: c linux debugging gdb multidimensional-array