看板 EE_DSnP 關於我們 聯絡資訊
剛剛debug de了好幾個小時 終於抓到錯誤 就是說 在這整份程式裡面 存在一個名為 bddMgr 的全域變數 而在bddNode裡 存在一個叫做_BddMgr的static變數 我在bddNode裡,把後者寫成了前者 compile當然順利過了,但是無止境的bug現在才開始 我在testBdd.cpp卡了很久, xor怎麼樣都不過 最後我終於發現 最開始的那些變數,他們被插入了不同的hash table裡 (後來的被我插到全域變數裡了) 所以 當然會需要再產生新的node...... 如果有人有發生類似的問題,請注意這件事情 分享之orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.37 ※ 編輯: anfranion 來自: 140.112.30.37 (01/19 16:59)
MacacaXDrz:為什麼我不知有_BddMgr可是一路到最後都沒有錯囧|||? 01/19 17:04
MacacaXDrz:所以我的CODE其實是錯的嗎Q_Q? 01/19 17:05
yclanner:嗯.. 這兩個在呼叫完BddMgr::init後是一樣的吧...? 01/19 17:10
anfranion:在testBdd.cpp裡會不一樣 01/19 17:17
anfranion:然後為什麼呼叫完會一樣@@ 01/19 17:18
flarehunter:我也碰到過一樣的問題…debug de了三個小時… 01/19 19:40
yclanner:跑testBdd.cpp的時候我不太確定 但真正跑程式的時候 01/19 20:14
yclanner:因為BddMgr只有一個 且在init的時候就會把這唯一一個的 01/19 20:14
yclanner:pointer 給了_bddMgr 01/19 20:15
ric2k1:(sorry sorry) 我也是後來才發現我這樣寫... 實在是不好 01/19 20:16
yclanner:by class BddNode裡的static function setBddMgr() 01/19 20:16
yclanner:所以應該是一樣的吧.... 01/19 20:16
ric2k1:以後 (如果還有以後) 會改掉! 01/19 20:16
ric2k1:(筆記) 不要用 global 變數... 01/19 20:17
anfranion:假設沒有呼叫set就會壞掉~ testbdd就沒有 01/20 00:04