作者uxijgil ()
看板EE_DSnP
标题[问题] memMgr.reset()
时间Thu May 7 22:16:13 2009
在 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
1F:推 yangjiunru:new出来的东西要用delete删除掉 05/07 22:21
2F:→ yangjiunru:如果真的要call free的话 因为class里有个free 05/07 22:22
3F:→ yangjiunru:所以要用::free(temp) 05/07 22:23
4F:→ yangjiunru:不过还是用delete比较好 05/07 22:23
5F:推 ric2k1:free() 不会呼叫 destructor, 所以 char []_begin 不会被 05/07 22:25
6F:→ ric2k1:free 掉哦! 05/07 22:25
7F:推 wanga10219:delete 中 会先call destructor or free()? 05/07 22:47
8F:推 ric2k1:可以写一个小程式试试看... 05/07 23:02
9F:→ uxijgil:谢谢,忘记MemBlock本身是被new出来的~~想说直接用free掉 05/08 00:33