注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

多多的爹

 
 
 

日志

 
 

Windows允许new一块“0”size的内存  

2009-09-03 22:41:09|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近发现程序下面老是跳出内存泄漏的信息:
image

奇怪的是,泄漏的数量为0。
经过排查,发现是下面这段代码导致的:
len = ltmsg->msglen / sizeof(wchar_t);
msg = new wchar_t[len];
某个特殊的时候,len为0,此时调用new,同样可以成功,并且返回一个地址指针。在Debug下从Memory中查看这段内存,发现全是fd。

image
参考我以前一篇文章讲解new的文章,Debug模式下,Windows会将刚分配的内存置为cd。这里没有找到cd,说明确实一个字节也没有分配。
但是尽管没有分配内存,但在此进程的记录中,还是记下了刚分配的地址,因此程序在加入内存调试后,依然会报内存泄漏的错误。

  评论这张
 
阅读(6)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017