devxlogo

Iostream Objects’ Memory Use

Iostream Objects’ Memory Use

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.

devx-admin

Share the Post: