日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

vs调试c语言检查内存泄露,VisualStudio中检查内存泄露方法

發(fā)布時(shí)間:2025/3/21 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs调试c语言检查内存泄露,VisualStudio中检查内存泄露方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

項(xiàng)目工程中存在內(nèi)存泄露,被折磨了一晚上,終于查了出來(lái),因?yàn)橹皼](méi)有相關(guān)的經(jīng)驗(yàn),還比較生疏,在此記錄下來(lái),方便以后查找。

對(duì)于malloc出的內(nèi)存的檢測(cè)方法

這篇文章中詳細(xì)地記錄了從檢查到找到確定位置到修復(fù)的方法,這里不再贅述。但是這是針對(duì)于C語(yǔ)言中的malloc方法的,C++中不再推薦使用malloc,取而代之的是new,如果按照這種方法的話,可以檢測(cè)出內(nèi)存泄露,但是不能確定到具體的位置。

對(duì)于new方法分配的內(nèi)存的檢查

這里分享一些C++中檢測(cè)內(nèi)存泄漏的技巧,與上面的方法不同的是,我們要多定義一個(gè)宏命令:#define _CRTDBG_MAP_ALLOC_NEW,部分代碼如下:

#define _CRTDBG_MAP_ALLOC

#define _CRTDBG_MAP_ALLOC_NEW

#include

這幾個(gè)是必須的頭文件和宏定義,之后在工程出口添加:

_CrtDumpMemoryLeaks();

運(yùn)行后”輸出”窗口會(huì)顯示內(nèi)存泄露信息:

但是這里的文件位置還不是準(zhǔn)確的,指向的是crtdbg.h這個(gè)頭文件,這里可以用到一個(gè)小技巧:雙擊文件跳轉(zhuǎn)到對(duì)應(yīng)行,添加斷點(diǎn),添加條件,當(dāng)new的空間大小等于”輸出”窗口所顯示的空間大小時(shí),觸發(fā)斷點(diǎn)。如圖所示:

觸發(fā)斷點(diǎn)后,在“調(diào)用堆棧”里就可以看到具體是哪里申請(qǐng)的內(nèi)存了:

當(dāng)然,這只是一種“歪門邪道”,因?yàn)槿绻孤兜膬?nèi)存大小是個(gè)很常見(jiàn)的數(shù)字,比如8bit,4bit之類,這種方法就沒(méi)用了。

總結(jié)

以上是生活随笔為你收集整理的vs调试c语言检查内存泄露,VisualStudio中检查内存泄露方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。