CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

内存释放的问题

楼主cs5lyp519(哈哈23)2005-08-01 15:59:34 在 VC/MFC / 界面 提问

我的程序运行时载入数据,内存是用new动态创建出来的,用完之后用delete释放。  
  在debug下调试的时候内存被正确释放(用任务管理器观察数据载入前和释放后程序占的内存基本一样),但是release版本的就发现内存没有完全释放,程序占的内存比载入前大的多,不过再加载一次数据时程序所占的内存不会超过上次的量(既加载->释放->加载)。  
   
  请问有可能出现这种情况吗?   有什么好办法发现内存泄露问题? 问题点数:50、回复次数:4Top

1 楼younggle(洋溢)回复于 2005-08-01 16:14:06 得分 15

只要确认你的   new   和   delete   是配对使用的就没有问题。  
   
  但是有一点要注意,数组的内存申请和释放。如下:  
   
  char   *szName   =   new   char[64];  
  ....  
   
  delete   []   szName;                   //正确  
   
  delete   szName;                         //只释放头指针,会有内存泄露Top

2 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2005-08-01 16:22:05 得分 15

实际不行,考虑一下auto_ptrTop

3 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2005-08-01 16:22:45 得分 5

new/delete  
  new   []/delete   []Top

4 楼seansoe(www.sysmgmt.com.cn)回复于 2005-08-01 16:25:22 得分 15

用任务管理器观察内存是不准确的,因为操作系统对内存的管理是有优化的。如果你的程序是个服务程序,只要测试它在足够长的一段时间内没有持续增长,即有增长也有释放就可以了。当然new过的内存一定要调用delete释放。Top

相关问题

  • 释放内存
  • 内存释放
  • 内存释放
  • 释放内存?
  • 内存未释放?
  • delphi中内存的释放
  • 怎样释放内存?
  • 释放内存的问题。
  • 内存释放问题
  • 内存释放的问题

关键词

  • 内存
  • 数据
  • 释放
  • 加载
  • 程序
  • 载入
  • szname
  • 问题
  • delete
  • 没有

得分解答快速导航

  • 帖主:cs5lyp519
  • younggle
  • DentistryDoctor
  • DentistryDoctor
  • seansoe

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo