Welcome to Emulationworld

Forum Index | FAQ | New User | Login | Search

Make a New PostPrevious ThreadView All ThreadsNext ThreadShow in Flat Mode*


SubjectRe: fixed :) Reply to this message
Posted byBart T.
Posted on01/28/04 11:10 AM



> What leaves me puzzled is the problem popping out when I deallocate, rather than
> when I actually write to memory. Shouldn't a memory access & modification in an
> unallocated area of the heap trigger an access violation, rather than a delete?

Your reasoning is right, but you have to remember that memory protection cannot usually happen at a byte-sized granularity, so you'll often be able to overwrite a few extra bytes without anyone complaining, and that's not good.

Memory protection will typically take place on page-sized (4KB) or greater intervals. X86 has a lot of crazy MMU features but I think Windows probably just uses paging for the most part.

I think you were compiling in debug mode which means MSVC uses code that initializes uninitialized memory regions with a certain magic number (0xFD?) and at the end, checks to see if you have written out of bounds by seeing if everything is 0xFD where it should be. I could be wrong, but I think I've heard this somewhere and it seems consistent with what's happening to you.

----
Bart

-
Entire Thread
Subject  Posted byPosted On
*weird c++ destructor behaviour  Terry Bogard01/27/04 12:25 PM
.*fixed :)  Terry Bogard01/28/04 06:33 AM
...Re: fixed :)  Bart T.01/28/04 11:10 AM
...*Re: fixed :)  Terry Bogard01/28/04 12:53 PM
.*Re: weird c++ destructor behaviour  ElSemi01/28/04 04:26 AM
.*Re: weird c destructor behaviour  finaldave01/27/04 06:13 PM
..*Re: weird c destructor behaviour  smf01/28/04 03:18 AM