什么情况下会出现内存疏漏?

sjy 2000-06-13 09:38:00
我的程序有内存疏漏,但我查不到是那里的问题,我分配内存用的是NEW和DELETE,
没有用其他的内存分配函数,程序中的NEW和DELETE都是配对的,为什么还是出现
DETECT MEMORY LEAK呢?有没有其他可能会出现内存疏漏?有什么工具可以帮解决问题?
...全文
289 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sutao 2000-06-15
  • 打赏
  • 举报
回复
when you declare a pointer,Please set a default value NULL to it in constructor function, then it will disappear what you said.
haitian99 2000-06-14
  • 打赏
  • 举报
回复
如果你用new 非配的内存delete >1 次,
如果使用 呢我分配的内存月向溢出
Sundial 2000-06-14
  • 打赏
  • 举报
回复
估计是分配了资源(bmp,icon,dc,socket,etc)未释放
元明 2000-06-14
  • 打赏
  • 举报
回复
请把源程序给我寄一份,我来分析一下.
magicwizard@km169.net
sun2000 2000-06-13
  • 打赏
  • 举报
回复
xielm的提示可能是你的代码问题之所在(delete []..),当然也有可能你把某个指针指的空间给修改了。
xielm 2000-06-13
  • 打赏
  • 举报
回复
裝個boundchecker。有些時候 ,delete []aa
zdg 2000-06-13
  • 打赏
  • 举报
回复
很可能是一些DC句柄没有释放造成的...
jy90 2000-06-13
  • 打赏
  • 举报
回复
listen!
ad 2000-06-13
  • 打赏
  • 举报
回复
是不是这样的:
CBitmap *pBmp = new CBitmap; //或者其它object
pBmp->LoadBitmap(...);
.....

pBmp->DeleteObject(); //有这行吗?
delete pBmp;
BugGo 2000-06-13
  • 打赏
  • 举报
回复
源程序给我看看!
softdoctor 2000-06-13
  • 打赏
  • 举报
回复
一般内存泄漏可能的原因:
1.new 没有 delete( malloc,free)
如果使用了成对的new,delete仍然泄漏,则有可能可能破坏了指针。

2.GDI资源,一般显式CreateXXX的一定要显式DeleteObject.
有一种情况:GetDC和Release一定要配对。

3.某些MFC类的某些函数,
例如CString::GetBuffer一定要对应有ReaseBuffer.

如果不是以上三种,请给出内存泄漏的具体信息或原码。

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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