作者XDucka (Duck)
看板EE_DSnP
標題[問題] fec
時間Sun Jan 13 01:24:31 2013
for_each(fecGrp, fecGrps):
Hash<SimValue, FECGroup> newFecGrps;
for_each(gate, fecGrp)
grp = newFecGrps.check(gate);
if (grp != 0) // existed
grp.add(gate);
else createNewGroup(newFecGrps, gate);
CollectValidFecGrp(newFecGrps, fecGrp, fecGrps);
有一點小看不太懂 所以憑感覺寫:
createNewGroup -> new一個vector把那個gate塞進去然後再把這個vector的指標
forceInsert到Hash裡
CollectValidFecGrp -> 看他們的size是不是2以上 是的話把這個grp push_back
到當前的fecGrps 小於2的話立馬 delete (<---雖然gdb不是說錯在這行 但是可以在
這邊就delete嗎@@?會不會造成下面這行的錯誤@@?)
然後外面還要把newFecGrp push_back進來之前的fecGrps都delete掉(<----gdb就說在這邊
有invalid pointer 可能是哪邊不能delete呢@@?)
這樣delete還有沒有可能哪邊有memory leak呢@@?
今天下午原本用vector<vector<CirGate*>*>
但是把某些new出來的vector delete掉的時候
會出現許多種不同的segement fault
所以想說先跑出來再說 改成用vector<vector<CirGate*> > ....
結果跑小小電路的時候對是對了=.=
但是晚上測sim13發現不但跑超久 而且記憶體花了1G....(下定決心要重來...)
結果剛剛才被前年的文章雷到 早知道早點被雷>.<
看來明天還是回去用vector<vector<unsigned>*>來砍掉重練一次好了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.241.132.193
※ 編輯: XDucka 來自: 111.241.132.193 (01/13 01:26)
1F:推 simpdanny:用typedef vector<CirGate*> GateList可增加可讀性唷XDD 01/13 01:46
2F:推 yan12125:用valgrind就知道哪裡有memory leak啦 01/13 02:03
3F:→ yan12125:我個人覺得memory leak永遠會出現在想不到的地方 01/13 02:04