看板 EE_DSnP 關於我們 聯絡資訊
其實我很不想要來騙P幣的... 但是這個問題我怎麼想都覺得很怪...囧rz 故事沿續自昨天我發現我跑了幾個電路,ref count都不對 最後跟強者我同學伸了uniquify換上去之後 就work了... 我原本的寫法是 BddNodeInt* n = new BddNodeInt(l, r, i); check the hash table if found, update n if not, add n into hash table return n; 這樣就掛了... 可是如果改成 BddNodeInt* n = 0; check the hash table if found, update n if not, n = new BddNodeInt(l, r, i); add n into hash table return n; 就可以了work了@@" 完全沒有頭緒,不是應該ref count 只會被BddNode控制嗎囧? 怎麼先new和後new我的BddNodeInt結果會不一樣呢@@? 好奇怪呀......我一定是有甚麼觀念沒有搞清楚了...orz 能夠請教請教嗎XD? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.88.214
cmh317:你先new的話 nodeInt會呼叫node的constructor吧 所以 01/17 14:54
cmh317:l,r的 ref count會被+1 所以要是你new出來沒delete 01/17 14:55
cmh317:l,r的ref count就會錯吧@@ 01/17 14:55
cmh317:在if found的情況下 01/17 14:57
a3785lexx:歐懂了! 01/17 15:20
a3785lexx:太感謝了!! 01/17 15:20