| 0xCD | 空内存 | 用new或malloc分配但从未被写入过的内存.可以用来发现分配单位使用的内存. |
| 0xDD | 死内存 | 已经用delete或者free释放掉的内存,用来发现挂起的野指针.系统一般会报错0xC0000005访问0xDDDDDDDD出错. |
| 0xFD | 护栏内存 | 这个标志主要是会出现在已分配的内存周围,像栅栏似的,如果你的数组越界的话,一般都会出现0xC0000005访问0xFDFDFDFD无法访问. |
| 0xAB | ? | 由LocalAlloc()在本地堆分配的内存初值,这个一般见得少. |
| 0xBAADF00D | 很难吃 (微软员工在某次食堂吃饭后开始使用:D) | 一般的HeapAlloc和LocalAlloc分配内存的初值都是这个,最常见为使用未初始化的指针导致0xC0000005访问0xBAADFOOD出错. |
| 0xCC | 当代码使用/GZ进行编译时, 未初始化的变量的初值都为CC.最常见为使用未初始化的指针导致0xC0000005访问0xCCCCCCCC出错. |
部分原文翻译自地址:http://www.codeguru.com/cpp/w-p/win32/tutorials/article.php/c9535/
0xBAADF00D是常见的Hexspeak.
如果对这种16进制的单词有兴趣,亦可参看http://en.wikipedia.org/wiki/Hexspeak.
本文介绍了不同内存标志的意义,如空内存(0xCD)、死内存(0xDD)、护栏内存(0xFD)、本地堆分配内存(0xAB)及未初始化内存(0xCC)。通过这些标志可以帮助开发者定位内存错误。

1034

被折叠的 条评论
为什么被折叠?



