On Tue, 22 Mar 2016 09:58:52 -0400 Adam Devita <adevita at verifeye.com> wrote:
> I don't know the reasoning, but it seems that VS6 often > initialized things to 0xcd in debug mode and (usually) had memory > uninitialized to 0x00 when complied in Release (perhaps 0x00 just > happens to be what was on the stack or heap). I would be talking out of school here if you're talking about C#. For C and C++, the 0xcd initialization helps make (mis)use of uninitalized objects more obvious. If the allocated buffer happens to be zero-initialized, things like printf will make them appear empty when they're actually invalid. This link has a nice discussion: http://stackoverflow.com/questions/2769247/controling-crt-memory-initialization and includes a link to the documented behavior: https://msdn.microsoft.com/en-us/library/Aa270812 --jkl