0xcdcdcdcd - Created but not initialised
0xdddddddd - Deleted
0xfeeefeee - Freed memory set by NT's heap manager
0xcccccccc - Uninitialized locals in VC6 when you compile w/ /GZ
0xabababab - Memory following a block allocated by LocalAlloc()
VC++在Debug編譯方式編譯的程序中,會(huì)跟蹤用new分配的內(nèi)存。新分配的內(nèi)存會(huì)用0xcd(助記詞為Cleared Data)填充,防止未初始化;當(dāng)它被delete后,又會(huì)被0xdd(Dead Data)填充,防止再次被使用。這樣有利于調(diào)試內(nèi)存錯(cuò)誤。之所以選這樣的填充模式,是因?yàn)椋?/span>
1.大數(shù),若被當(dāng)成指針就會(huì)越界
2.奇數(shù),指針通常指向偶數(shù)地址
3.非0,這樣不會(huì)和 NULL 混淆。
在Release版中不會(huì)有這些字節(jié)填充。