各位讲讲你们是怎么对付内存泄漏这个问题的?

duker 2001-11-21 05:28:58
讨论者有分
...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
码农猿圈圈 2001-11-22
  • 打赏
  • 举报
回复
GDI资源也是有限的。
造成GDI资源泄漏的一个例子:当调用 SHGetFileInfo() 得到文件的图标句柄 HICON, 使用后应该调用 DestroyIcon() 函数来销毁图标资源,否则就会造成资源泄漏。

我是利用 BoundChecker 来监测泄漏的,不看不知道,一看下一跳 :)

还记得我在某个地方看到有人利用一种特别的方法,在程序退出时删除了所有程序用到的内存,保证没有资源泄漏,时间太久记不清了 好像是 Windows 高级程序设计...
andy_vc 2001-11-21
  • 打赏
  • 举报
回复
Soundboy(阿茂),想问你一个问题,如果我只写了new,没有写delete,是不是当我用debug调试的时候,vc应该提醒我,请问,他会提示些什么样的信息呢???我自己做了个试验,可就是没有发现你所说的状态栏上的提示呢?
MSVCer 2001-11-21
  • 打赏
  • 举报
回复
Anaki(我心飞翔)
GDI资源泄漏你是怎么检测的
码农猿圈圈 2001-11-21
  • 打赏
  • 举报
回复
比较不易发现的就是GDI资源泄漏,要多留一点心。
码农猿圈圈 2001-11-21
  • 打赏
  • 举报
回复
除开最基本的编程的时候仔细一点以外,我会用工具仔细检查程序的运行情况,尽可能的发现问题。
hydnoahark 2001-11-21
  • 打赏
  • 举报
回复
不光是new,delete操作,一些变量如BSTR也需要注意自己释放资源。
yheysj 2001-11-21
  • 打赏
  • 举报
回复
内存泄漏!!市镇对于堆吗??我想问问!!不是有代码区!!数据去!!还有栈去!而在这是不是指堆区呢??
Suddy 2001-11-21
  • 打赏
  • 举报
回复
多用数组,少用指针
kingfish 2001-11-21
  • 打赏
  • 举报
回复
同意楼上
另外,谁申请谁释放
Soundboy 2001-11-21
  • 打赏
  • 举报
回复
检测方法:
1、在Debug状态下,运行程序结束后,VC的状态栏会显示出泄漏。
2、用boundchecker等专业工具。

其实关键是平时编程的时候new 和 delete 配对写,如果不是在本函数里面释放的就记录下来,记录可以通过定义变量,也可以片断指针是否为NULL,在每次delte 后给指针赋值NULL.

处理方法:
检测出来了那就释放呗。

16,471

社区成员

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

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

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