|
hmm, 0x00 at the end of an allocated memory, it's just a guess, but maybe you are allocating n bytes to copy a n chars long string, but you really need n+1 bytes due to the \0 at the end.
> I'm using VC++ 6.0 under Windows XP. > > I'm coding the functionalities of a very basic POP3 client. I have all the job > made by a "POP3" class which cares about the network connection, the parsing of > the server's responses and the storage of messages. > > Everything seems to be working fine, except the destructor: whenever I try to > free the memory allocated for the arrays of chars containing the messages, a > debug window with three buttons pops up. It's the old "continue, abort, debug" > window, except that it's blank: no text on it. > > I have checked everywhere else in my code to make sure no variable still points > to that memory area, and I've followed a step by step debug to see what's wrong, > but I wasn't able to understand what is the problem with those delete's. > > For every delete, the debug console reports something like: "memory check error > at 0x00348514 = 0x00, should be 0xFD" which makes little sense to me: why does > the debugger check memory values while I am deallocating memory? What is it > looking for, exactly? > > Also, this problem occurs only with debug builds: release builds report no > errors of sort, and the program terminates gracefully. > > If anybody has a clue about what goes on exactly, I'd appreciate that. > > I haven't posted source code here because the destructors contains just loops of > delete's, but it's no big secret, I even thought to make it available online as > public domain once polished, so feel free to ask if you think it's useful. > > Thanks in advance. > >
|