[問題] vector 造成的 memory leak

看板C_and_CPP (C/C++)作者 (泰勞)時間13年前 (2012/09/07 00:55), 編輯推噓3(303)
留言6則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VS 2010 我在 class 封裝了一個 vector<int> v 的欄位資料, 然後 new 了一個物件後 vector 也不加入資料進去 並在解構子加上 v.clear() & v.swap(vector<int>()) 但是還是造成 memory leak , 我透過軟體去查 他是顯示在建構一空的 vector 的時候去分配記憶體才造成的 請問要怎麼解決這個問題 謝謝 ! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.218.207 ※ 編輯: makuebx 來自: 122.116.218.207 (09/07 00:55)

09/07 01:47, , 1F
new了之後沒有delete?
09/07 01:47, 1F

09/07 02:14, , 2F
有, 我先swap vector之後接著 free 我 new 的物件
09/07 02:14, 2F

09/07 02:18, , 3F
確定解構子有被call到?
09/07 02:18, 3F

09/07 02:33, , 4F
嗯..發現錯誤了 new-delete malloc-free 原來我寫反了
09/07 02:33, 4F

09/07 07:59, , 5F
請問用什麼軟體來查有沒 memory leak?
09/07 07:59, 5F
我是用 Visual Leak Detector 和 _CrtSetDbgFlag() 搭配使用 ※ 編輯: makuebx 來自: 122.116.218.207 (09/07 09:07)

09/07 12:43, , 6F
http://valgrind.org/ linux可以用這個
09/07 12:43, 6F
文章代碼(AID): #1GIDM7yP (C_and_CPP)
文章代碼(AID): #1GIDM7yP (C_and_CPP)