看板 EE_DSnP 關於我們 聯絡資訊
在 MemMgr 裡面的 reset()出現下列錯誤: memMgr.h:191錯誤: 對 MemMgr<MemTestObj>::free(MemBlock<MemTestObj>*&)沒有匹配的函數 memMgr.h:220: 附註:備選為 void MemMgr<T>::free(T*) [with T = MemTestObj] make[1]: *** [memCmd.o] Error 1 我是用 MemBlock<T>* temp 去接 _activeBlock 的位置 然後 _activeBlock 前進 , 再用 temp 來做記憶體釋放的動作 >> free(temp) ; 可是這一行就錯了 , 這樣不是呼叫 temp 的 default void free(*) 嗎 ? 還是要用其他的方式來還 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.172.215
yangjiunru:new出來的東西要用delete刪除掉 05/07 22:21
yangjiunru:如果真的要call free的話 因為class裡有個free 05/07 22:22
yangjiunru:所以要用::free(temp) 05/07 22:23
yangjiunru:不過還是用delete比較好 05/07 22:23
ric2k1:free() 不會呼叫 destructor, 所以 char []_begin 不會被 05/07 22:25
ric2k1:free 掉哦! 05/07 22:25
wanga10219:delete 中 會先call destructor or free()? 05/07 22:47
ric2k1:可以寫一個小程式試試看... 05/07 23:02
uxijgil:謝謝,忘記MemBlock本身是被new出來的~~想說直接用free掉 05/08 00:33