CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

CArray会不会造成内存泄漏?

楼主hongyan80(鸿雁)2005-05-11 15:35:08 在 VC/MFC / 基础类 提问

我用CArray定入了一个数组,再把一些new出来的对象放入该数组中,再用RemoveAt   或RemoveAll   删除对象,会不会造成内存泄漏?如果会,怎样delete掉new出来的对象? 问题点数:20、回复次数:9Top

1 楼qrlvls( 空 气 )回复于 2005-05-11 15:40:34 得分 5

会,new出来的对象需要显式delete  
  怎样delete就不是问题了吧,根据你的实际应用可以重载CArray,用你自己的RemoveAt和RemoveAll来实现自动的delete(前提是逻辑清晰)Top

2 楼syouryou()回复于 2005-05-11 15:43:31 得分 0

把RemoveAt返回的对象delete掉就可以了。  
  RemoveAll的话需要一个个delete掉。Top

3 楼redclouds()回复于 2005-05-11 15:44:40 得分 0

显式delete是什么意思啊Top

4 楼orbit(走了走了)回复于 2005-05-11 16:04:32 得分 5

你说的情况CArray只是负责管理指针,至于指针指向的内存需要自己释放Top

5 楼hongyan80(鸿雁)回复于 2005-05-11 17:15:43 得分 0

那是不是不如使用CPtrArray?   这样能一眼看出是个指针数组,需要手工释放内存  
  那CArray又有什么用呢?Top

6 楼SoLike(思危)回复于 2005-05-11 17:37:49 得分 10

通过   new   产生的对象必须用   delete   释放。  
  这是MSDN   里的例子,清空一个存放指针的Array  
   
  CArray<CPerson*,   CPerson*>   myArray;  
   
  int   i   =   0;  
  while   (i   <   myArray.GetSize()   )  
  {  
          delete   myArray.GetAt(   i++   );  
  }  
   
  myArray.RemoveAll();  
  Top

7 楼SoLike(思危)回复于 2005-05-11 17:41:17 得分 0

之所以用   CArray,是因为他是一个模板类,类型上更安全Top

8 楼crusaderg(刻苦)回复于 2005-05-11 17:49:43 得分 0

MSDN有明确的说明的,remove的对象不会自动释放内存的。Top

9 楼KevinWon(Kevin)回复于 2005-05-11 17:55:50 得分 0

mark   学习Top

相关问题

  • 这么用CArray会不会导致内存泄漏?
  • 请问这样会不会造成内存泄漏?????????????????????
  • 内存泄漏是什么?怎么造成的?java中会不会产生内存泄漏?
  • 如果在一个程序中使用了堆内存,但并不回收,会不会造成内存泄漏
  • 请问返回一个动态对象的引用会不会造成内存泄漏?
  • 请问_bstr_t会不会引起内存泄漏?
  • unix下的opendir()会不会内存泄漏
  • 这段代码会不会内存泄漏,如果是java呢
  • 看看这代码会不会内存泄漏
  • 这样字符串指针会不会出现内存泄漏??

关键词

  • 内存泄漏
  • 指针
  • 内存
  • carray
  • 数组
  • 对象
  • 会不会
  • removeat
  • 造成内存泄漏
  • removeall

得分解答快速导航

  • 帖主:hongyan80
  • qrlvls
  • orbit
  • SoLike

相关链接

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

广告也精彩

反馈

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