Iostream Objects' Memory Use

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.