指针值0x7c7c7c7c的特殊含义

时间:2008-12-11 14:34:39

标签: c++ linux pointers

在调试Linux应用程序时,我发现了一个带有可疑值0x7c7c7c7c的指针。这个特定值是否表明了什么?

(我问,因为我从MSVC的日子知道,在调试版本中,像0xcdcdcdcd或0xdddddddd这样的值将被存储到未初始化,释放或无效的堆块中。有些人使用魔法值,如0xdeadbeef或0xcafebabe in未初始化的内存。我猜测在libc或其他地方的东西使用0x7c7c7c7c作为魔法值,但我找不到它的记录。)

4 个答案:

答案 0 :(得分:4)

我不认识那个神奇的数字,Wikipedia也没有。我猜你的程序中(或你正在使用的库中)的某些代码正在使用memset()并命中你的指针。您是否对字符串“0x7c”不敏感地使用了代码库?

答案 1 :(得分:2)

0x7C是ASCII管道“|”字符。您可以搜索该字符的写入以及124和0x7C作为Adam建议。

答案 2 :(得分:1)

0x7c7c = 01111100 01111100二进制。这可能是那些“最难以阅读”的位模式之一,格式化实用程序会填充硬盘驱动器上未使用的空间。

答案 3 :(得分:1)

可能设置了MALLOC_PERTURB_环境变量?如果设置,它会影响malloc()初始化已分配内存的方式。