看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《HigherKuo (我需要好運)》之銘言: : 我執行test.cpp : 馬上就錯在 : BddNode::BddNode(size_t): Assertion `v!=0' failed. : 但是似乎又連test.cpp main()第一行都還沒執行到 : 請教一下程式哪裡呼叫了BddNode(size_t)這個constructor呢? : 感謝! 我發現問題了,但是我不知道該如何解決,請教大家! 在bddMgr::init裡面先initial _terminal 利用uniquify(0, 0, 0) 在uniquify裡面檢查hash,第一次bddHash::check一定會回傳false 所以跑到 n = BddNodeInt(l, r, i) 同樣的傳入了(0, 0, 0) 在BddNodeInt constructor寫的是 _left(l)... _left是BddNode的型態 所以又呼叫了BddNode的constructor 同樣的又傳入了 "0" 但是在BddNode(size_t v) 這個constructor裡面 要判斷v!=0 ← 程式在此就fault了 想請問一下,這個流程中我忽略了哪個步驟嗎?應該如何解決呢? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234
ric2k1:為什麼要判斷v!=0 ? 06/20 22:10
s2kip:應該不用assert v!=0吧 而是不是零的時候要做改refCount之類 06/21 01:28
s2kip:的動作吧 06/21 01:28
ric2k1:樓上正解 06/21 02:11
HigherKuo:大感謝樓上兩位!!! 06/21 09:23