在過去的幾天裏我很痛苦地學習了很多關於C++編程的知識。
我愛它:)
我知道我應該釋放內存 - 現在在我的世界中存在黃金「每個malloc = free」或「每個new = delete」規則,但是我將它們用於相當簡單的對象。
矢量呢?無論我在哪裏,我都在使用vector.clear(),但這顯然是不夠的,因爲我的內存泄漏很大。
你能指導我如何對待這件事?我應該刪除矢量<string>?
*編輯
謝謝,您的意見讓我想到了這個應用程序的運算,我將能夠完全消除該向量。 :O
對不起 - 我開始解釋我在這裏的用例,並且發現了我真正需要的東西。就像你每天爲18小時的最後3天編碼一樣:| *編輯2
這很瘋狂。通過代碼的小改動,我已經將內存使用量從2x130 mb(不斷增長)消除爲2x 13.5mb,不變的大小。感謝讓我以另一種方式思考這個問題。
Btw。這樣的自我代碼審查得到了一個名字 - 任何人都記得嗎當你問任何人(甚至你的母親或狗)並開始解釋你的問題時 - 突然間你自己解決這個5小時的問題,只是試圖從另一個角度來看問題,或者試圖總結一下它是什麼所有關於。我經常發現自己被捕獲...
由於您是內存管理的新手,可能您可以解釋您是如何知道自己正在獲取內存泄漏。測量內存泄漏的一些方法並不能真正反映出發生了什麼。 – 2009-06-14 19:49:37
你可能想發佈一些你如何使用矢量類的示例代碼。例如,你有指向動態創建對象的向量嗎? – 2009-06-14 19:57:03
好吧,我只是看到,我的應用程序執行導致越來越多的內存佔用。我正在執行相當簡單的操作(在兩個進程中進行md5哈希,並與mpcih2綁定),對於我的測試,它完全是兩千五百萬次操作。一個進程發送給其他數據包(字符串),第二個爲其計算散列值。在執行結束時,我已經拍攝了兩次130 MB。這太正常了。 – IamDeveloper 2009-06-14 19:59:24