在程式測驗程序中,發現有記憶體泄漏,通過valgrind定位,發現是CMapStringToPtr.SetAt使用時造成的記憶體泄漏,他底層好像呼叫的是CString類。請問有誰知道到CMapStringToPtr.SetAt底層的作業原理或者代碼嗎。或者解決記憶體泄漏的辦法,謝謝大家。以下是valgtind的日志。
==20058== 290 bytes in 20 blocks are definitely lost in loss record 1 of 1
==20058== at 0x40288F6: operator new[](unsigned int) (vg_replace_malloc.c:357)
==20058== by 0x804C46F: CString::AllocBuffer(int) (in /root/valgrind/SsiMemoryTest.exe)
==20058== by 0x804C753: CString::AllocBeforeWrite(int) (in /root/valgrind/SsiMemoryTest.exe)
==20058== by 0x804C89D: CString::AssignCopy(int, char const*) (in /root/valgrind/SsiMemoryTest.exe)
==20058== by 0x804CA7A: CString::operator=(char const*) (in /root/valgrind/SsiMemoryTest.exe)
==20058== by 0x804AE6C: CMapStringToPtr::SetAt(char const*, void*) (in /root/valgrind/SsiMemoryTest.exe)
==20058== by 0x8049440: main (SsiMemoryTest.cpp:25)
uj5u.com熱心網友回復:
https://www.cnblogs.com/jiangzhaowei/p/4972239.html轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/16931.html
標籤:基礎類
上一篇:vscode編輯器的open in browser無法打開瀏覽器問題
下一篇:如果用VC++發手機短訊息?
