调试的值列中的0x0022f844表示什么?

时间:2012-02-25 10:02:31

标签: c visual-c++ file-io visual-studio-debugging

我使用VC2010,我发现调试和写入时相同的数据表示不同。 例如:37487840ca673239dc72f9eeb746947a表示为

0x0022f844 "37487840ca673239dc72f9eeb746947a"   unsigned char [33]

0x0022f670 "48598840ca673239dc72f9eeb746947a"   unsigned char [33]

我想要第一个表示,但第二个表示写入文件而不是第一个。

编辑:

第一个和第二个值需要相同,因为第二个值只是第一个的副本。实际上我将第一个值作为参数传递给函数,第二个值表示它在此函数中完成任何操作之前。

3 个答案:

答案 0 :(得分:1)

0x0022f844是十六进制数的示例。那是(默认情况下)用于显示地址的格式。因此,该值随着运行的不同而不同,它是值所在的内存区域地址的“人类可理解的”表示。将它放在一个文件中是没用的。存储您的价值。

答案 1 :(得分:1)

左侧列中的值是数组的地址。由于数组具有固定大小,因此Visual Studio在值列中显示其所有元素。

这里有两个不同的地址,因此显示了两个不同的值。

答案 2 :(得分:1)

第一部分(0x...)是您正在观看的变量的地址。接下来是在该地址打印出内存的内容。

您正在观看的第二个变量/记忆区域不是“37487的表示...”,它包含不同的值。