> 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?
good ol' heap corruptions, the daddy of all bastard bugs!
> 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.
Sounds like you are corrupting the heap. Check out crtdbg.h for lots of nice heap corruption and memory leak tracking tools.
Ah programming for Win32 is so easy, so many helpful tools at your disposal :P
You learn something old everyday...