看板 EE_DSnP 關於我們 聯絡資訊
為什麼我在這裡只要想要 delet最剛開始做出來的MemBlock就會跑出 *** glibc detected *** free(): invalid pointer: 0x09446c18 *** 已經終止 (delet後來做出來的就沒事) 而且我一開始什麼都不做在程式一開始時第一次輸入mtr block remainFreeSize 就會變得非常大 感覺似乎是 _ptr 或是_begin指到了奇怪的地方 (雖然我只是呼叫 _activeBlock->reset() 而已) 我想用cout大法印出 _ptr的位置 和 _begin的位置 也是馬上crach 感覺一開始在 memMgr 的 constructor 做出來的 MemBlock有點神祕... 這樣會是什麼問題呢?? 感謝 ---------------------------------------- 最近習慣看日出.... ---------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.124.54
uxijgil:MemBlock只傳 _nextBlock 跟 _blockSize 不傳也沒關係 05/08 09:08
※ 編輯: yea107 來自: 115.43.124.54 (05/08 09:19)
yea107:不太懂樓上的意思耶@@ 05/08 09:20
yangjiunru:_ptr和_begin是char*, cout會dereference他 05/08 11:26
yangjiunru:所以會crash 05/08 11:26
yea107:那為什麼想要delete最初的MemBlock會crash呢?? 05/08 12:35
Hrothgar:感覺會不會是reset recycleList的時候,多delete一個 05/08 13:12
ric2k1:原來是 for (int i = 0; i <= 256; i++) _recycleList.rese 05/08 18:03
ric2k1:t() 的問題... 05/08 18:03
yea107:謝謝老師~~ 05/08 23:06