描述符 调用 Alloc() 内存泄漏问题,求解!!

guqiwei 2009-06-16 10:49:55

__UHEAP_MARK;
_LIT(KTemp,"temp char");
TBuf<40> tempBuf = KTemp;
tempBuf.Alloc();
__UHEAP_MARKEND;


会抛出异常,不知怎样才能清除这个泄漏问题???
...全文
70 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmulxg 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 guqiwei 的回复:]
anel说的不行的,像下面这样调用的话还是会出错的
__UHEAP_MARK;
_LIT(KTemp,"temp char");
TBuf <40> tempBuf = KTemp;
HBufC *hBufC = HBufC::NewL(40); #
hBufC = tempBuf.Alloc(); *
delete hBufC;
__UHEAP_MARKEND;
[/Quote]

angel真有耐心,顶一下!

#处已经申请一块内存,未释放又在*处申请另一块内存,所以产生内存泄漏;



guqiwei 2009-06-16
  • 打赏
  • 举报
回复
谢谢ANEL和小军,结贴,给分!
wbczyh 2009-06-16
  • 打赏
  • 举报
回复
_LIT(KTemp,"temp char");
TBuf <40> tempBuf = KTemp;
#if 0//怎么又New了一个?
HBufC *hBufC = HBufC::NewL(40);
hBufC = tempBuf.Alloc();
#else//Anel的意思是这样吧
HBufC *hBufC = tempBuf.Alloc();
#endif
delete hBufC;
__UHEAP_MARKEND
anel 2009-06-16
  • 打赏
  • 举报
回复
__UHEAP_MARK;
_LIT(KTemp,"temp char");
TBuf <40> tempBuf = KTemp;
HBufC *hBufC1 = HBufC::NewL(40);
HBufC *hBufC2 = tempBuf.Alloc();
delete hBufC1;
delete hBufC2;
__UHEAP_MARKEND;
wbczyh 2009-06-16
  • 打赏
  • 举报
回复
上面说的对,分配了空间又没使用,发生泄漏,这里又在使用__UHEAP_MARK检测内存泄漏,当然报错了。
guqiwei 2009-06-16
  • 打赏
  • 举报
回复
anel说的不行的,像下面这样调用的话还是会出错的
__UHEAP_MARK;
_LIT(KTemp,"temp char");
TBuf<40> tempBuf = KTemp;
HBufC *hBufC = HBufC::NewL(40);
hBufC = tempBuf.Alloc();
delete hBufC;
__UHEAP_MARKEND;
anel 2009-06-16
  • 打赏
  • 举报
回复
HBufC *bufc=tempBuf.Alloc();

delete bufc;//用完后

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧