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