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編譯方式編譯的程序中,會跟蹤用new分配的內(nèi)存。新分配的內(nèi)存會用0xcd(助記詞為Cleared Data)填充,防止未初始化;當它被delete后,又會被0xdd(Dead Data)填充,防止再次被使用。這樣有利于調(diào)試內(nèi)存錯誤。之所以選這樣的填充模式,是因為:
1.大數(shù),若被當成指針就會越界
2.奇數(shù),指針通常指向偶數(shù)地址
3.非0,這樣不會和 NULL 混淆。
在Release版中不會有這些字節(jié)填充。