作者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