我对以下gdb输出很困惑。我正在调试处理文本文件的程序。文件中的第一个单词是""并且gdb输出如下所示:
"该":
(gdb) p *(char*)0x7fffffff9d30
$12 = 84 'T'
(gdb) p *(char*)0x7fffffff9d34
$13 = 104 'h'
(gdb) p *(char*)0x7fffffff9d38
$14 = 101 'e'
一个字符是一个字节,所以当我增加' T'按8位我应该找到' h'那里。但是地址是' h'是只有4位更远。我在这里缺少什么?
没有意识到这些是Wchar_t(宽字符)。
答案 0 :(得分:0)
FWIW,在这种情况下你可能想要使用" x"命令转储内存。这可以避免由类型和操作符引起的任何混淆。