內存管理

      在使用C/C++語言開發程序時,內存泄漏是比較常見的一個問題,但是內存泄漏,又是一個比較難查的問題,這裏我來說下,以前項目中使用的一種方法,方便對內存進行分析,具體方法如下:

       自己定義一個結構體,struct memory_stu{char *file;int line;char *func;void *ptr;} mem_stu;然後再定義一個std::map,map中的value爲mem_stu*的指針,這樣在每次申請內存時,自己寫一個函數,比如:函數名叫apply_memory,在這個函數記錄下使用malloc函數申請內存時的文件名__FILE__,行號__LINE__,函數名__FUNCTION__,同時記錄下malloc函數返回的指針,這些信息放在mem_stu結構體中,同時,將這些信息添加到map中;在釋放時,將相應的內存從map中刪除;另外,可以單獨開一個線程,對內存進行統計,這樣就可以在程序運行的過程中,對內存進行實時統計,再結合代碼,就可以很方便得查看是否有內存泄漏。

發佈了11 篇原創文章 · 獲贊 0 · 訪問量 631
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章