我知道编译器有时会使用某些模式(如 0xCD和 0xDD)初始化内存。我想知道的是 什么时候和 为什么会发生这种情况。
这是特定于所使用的编译器吗?
malloc/new和 free/delete在这方面的工作方式是否相同?
是特定平台的吗?
它是否会出现在其他操作系统上,例如 Linux或 VxWorks?
我的理解是,这只发生在 Win32调试配置中,它用于检测内存溢出并帮助编译器捕获异常。
您能给出一些实际的例子来说明这种初始化是如何有用的吗?
我记得读过一些东西(可能在代码完成2中) ,说当分配内存时,最好将内存初始化为一个已知的模式,并且某些模式将触发 Win32中的中断,这将导致异常显示在调试器中。
这个有多便携?