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.