作者bagaSu (baga)
看板EE_DSnP
標題static member initialize
時間Sat Jun 21 03:19:43 2008
void
BddMgr::init(size_t nin, size_t h, size_t c)
{
_uniqueTable.init(h);
_computedTable.init(c);
// This must be called first
BddNode::setBddMgr(this);
BddNodeInt::_terminal = uniquify(0, 0, 0);
BddNode::_one = BddNode(BddNodeInt::_terminal, BDD_POS_EDGE);
我死在這一行耶
程式記憶體錯誤
查了連 constructor BddNode::BddNode(BddNodeInt* n, BDD_EDGE_FLAG f) 都沒叫
也沒呼叫 BddNode& BddNode::operator = (const BddNode& n)
這一行會甚麼會發生程式記憶體錯誤呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.179.191
※ 編輯: bagaSu 來自: 59.115.179.191 (06/21 03:27)
1F:推 ric2k1:請用 debugger run 到 crash 之後用 where 將 trace dump 06/22 01:12
2F:→ ric2k1:出來! 06/22 01:13
3F:推 cplin:我猜是因為你要讓_one去decRefCount() 06/22 02:37
4F:→ bagaSu:很類似的感覺 我在 new terminal 的時候 他的 child是兩個 06/22 04:39
5F:→ bagaSu:BddNode 而且被 constant 0 給 initialize 06/22 04:39
6F:→ bagaSu:我應該是 BddNode(size_t v) 寫錯了 06/22 04:39