作者rf0914 (<-使用者代號)
看板EE_DSnP
標題Re: [問題] simulation時記憶體爆掉
時間Mon Jan 16 05:05:13 2012
解決了!!!!
所以像是 vector< T* > newGrps 這種local variable
並不能期待他在scope結束的時候自動destruct並釋放指向 T 的記憶體
所以必須在最後補上
for(size_t i=0; i<newGrps.size(); i++)
delete T;
才能正確地釋放記憶體
※ 引述《rf0914 (<-使用者代號)》之銘言:
: 如題
: 我的cirsim -r隨著pattern的次數增加呈線性的成長...
: 32000個pattern的時候就花了183M Byte
: 反觀老師的simulation幾乎沒有增加記憶體的使用量
: 我是用老師的那種架構initFEC(); checkFEC(); 來寫
: HashData也是 vector<unsigned>*
: Hash的destructor裡面寫了reset(); delete [] _buckets;
: 在checkFEC()裡面也沒有亂new甚麼東西
: 不知道還有甚麼地方可能會漏記憶體是我沒想到的 @@
: 我在想我一定是有誤會了甚麼才會這樣...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.243.229
※ 編輯: rf0914 來自: 140.112.243.229 (01/16 05:05)
推 j0214ack:所以問題是在pointer沒有destructo吧? 01/16 09:44
→ j0214ack:可是那個T*是new出來的嗎@@? r 01/16 09:45
→ rf0914:是的 01/16 13:29
→ OckhamsRazor:不是new出來就沒事吧@@ 01/16 14:18