VS環境下C++如何檢查是否內存泄漏


c++如何檢查是否內存泄漏

今天在做OpenGL引擎的時候,突然想到檢查一下內存泄漏。具體是我做了一個渲染類Render,將所有世界中存在的物體的指針都存放在這個類中。於是我不免擔心,在Render中刪除一個物體時,是否真的把內存都釋放掉了呢?OpenGL當中各種VAO、VBO、以及我自己在類中寫的各種new語句,如果沒有在析構函數中釋放,那是很危險的。

在程序入口寫幾個語句,程序退出時,如果發現有內存泄漏,會自動在DEBUG OUTPUT窗口和DebugView中輸出內存泄漏信息

-- 引用自《如何檢查C++中的內存泄漏 vs自帶

具體代碼如下

	/////////////// detect memory leak ///////////////
	int tmpFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
	tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
	_CrtSetDbgFlag(tmpFlag);
	//////////////////////////////////////////////////

如果存在內存泄漏,在程序運行結束后,下方的輸出欄就會顯示相應的報錯信息,具體效果如下圖:

經過一番調試檢查,果然找到了一個類中有一個指針沒有釋放。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM