Question:
I have written this very small program in Microsoft Visual C++ and it seems that STL is dumping memory:
#include#include using namespace std ;void main(){ _CrtDumpMemoryLeaks( );}
The output is a memory dump of 33 bytes and 40 bytes. How can this be?
Answer:
_CrtDumpMemoryLeaks( ) lies. The iostream objects are constructed before main() starts and they are destructed after main() exits. Therefore, _CrtDumpMemoryLeaks() thinks that there’s a memory leak, because the memory isn’t released when by the time main() exits. Instead, it is released afterwards, during the destruction of the iostream objects.