精華區beta EE_DSnP 關於我們 聯絡資訊
※ 引述《timmylin (再也不寫程式了...)》之銘言: : ※ 引述《ric2k1 (Ric)》之銘言: : : 理論上如果沒有 memory leak 的話, reset mem 之後所有的 pointer address 又會 : : 回到原先的值 : : 也就是說 每次 BDD 建出來的 address 都會一樣. 跟 " : 16" 應該沒有關係 : : 在看看是否為 memory leak 吧... : 應該不會一樣吧,因為MemMgr的Reset是釋放所有MemoryBlock : free(mem),下次建立時會重新和系統alloc memory建立新的 : memory block,所以address應該不一定一樣吧 如果是 single process 在 run, 有很大的機率會是一樣的 memory address. 妳可以寫一個小程式來試試看 : 如果我不reset MemMgr應該才會有這種address一樣的情形吧 : (但是不reset MemMgr基本上不會爆炸...實驗上來說) 妳的爆炸是指 memory out? 還是 segmentation fault? : 不過老師提的的Memory leak是指哪一種情況阿??有點搞不太 : 清楚......因為我會確定系統中沒有BddNodeInt實體存在才reset的阿 memory leak 是指你在 reset 之後沒有清掉所有的 memory, 而導致下次在 alloc 時所得到的 address 不同 妳怎麼去確定系統中沒有BddNodeInt實體存在? 有這個必要嗎? 不是直接 reset Mem 就好了嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.130.124
timmylin:segmentation fault 01/18 02:52
timmylin:MemMgr->reset時應該該清的我都有清掉 01/18 03:25
timmylin:是因為有時候address正好不一樣讓我錯掉?? 01/18 03:27
timmylin:所以加了reset後會時穩時不穩?? 01/18 03:28
timmylin:在MemMgr中加入Counter可以算出目前還有多少存在的BddNod 01/18 14:10