Question: Is there any reason for a program to leak when compiled in Debug mode and not in release?

(Debug means debug informations, and compiler optimization disabled, Release means no debug info / full optimization)

That's what it seems to do but I can't figure out why. Btw purify is not being helpful here

Answer: 
A lot of pointer type errors, including memory leaks, can *seem* to appear or disappear when switching between debug and release mode. A couple of reasons might be:

* Conditional code compiled in one version or the other
* Memory locations of things move around
* Special formatting of uninitialized data in the debug version
conditional `#ifdef _DEBUG` lines could be one reason.