作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [問題] MemMgr功虧一匱.......
時間Wed Jan 18 02:33:17 2006
※ 引述《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