C++強大之處的其中一個特性,就是對於記憶體的動態操作非常方便,然而他的優點若處理不好也可能造成很大的問題。所謂Memory leak 簡單說就是程式中使用的物件用完之後沒清乾淨,通常狀況是把指標給清掉了,原本指標指向的物件卻依然占用記憶體的狀況。
範例使用VS 2008內建的 memory leak detection function
#define _CRTDBG_MAP_ALLOC #include < stdlib.h > #include < crtdbg.h > #ifdef _DEBUG #define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__) #define new DEBUG_NEW #endif _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); //call at the beginning of your program
參考資料:
沒有留言:
張貼留言