CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

关于CString的内存释放问题。

楼主buding()2001-04-28 19:51:00 在 VC/MFC / 基础类 提问

CString   GetString()  
  {  
          CString   strTemp("aaaaaa");  
          return   strTemp;  
  };  
   
  void   func()  
  {  
          CString   strGet   =   GetString();  
  }  
  请问上面代码中,strTemp和strGet的内存如何释放? 问题点数:50、回复次数:11Top

1 楼elang(忆郎)回复于 2001-04-28 19:56:00 得分 5

两个变量都是在栈里分配   当函数结束的时候自动回收内存Top

2 楼buding()回复于 2001-04-28 20:45:00 得分 0

CString的字符串可以很长,应该在堆中分配吧。。。Top

3 楼lazyeric(yvo's cb)回复于 2001-04-28 20:51:00 得分 5

在GetString函数内部,strTemp在赋值给一个临时对象之后,就自动调用析构函数了。  
  在func函数中,只要过了func函数的右大括号“}”,strGet也开始调用自己的析构函数了。Top

4 楼taosi(桃子)回复于 2001-04-28 21:53:00 得分 5

自动释放,不用担心!Top

5 楼zhaowuqing(我尽力而为)回复于 2001-04-28 22:02:00 得分 5

这两个内存的释放绝对不用你处理的Top

6 楼yinxingshu(银杏树)回复于 2001-04-28 23:16:00 得分 5

两个变量都是在栈里分配,CString类中存储字符串的指针指向的内存是在堆中分配的,在函数返回时自动释放着两个变量,这个时候会调用CString的析构函数,释放在堆中分配的字符串内存Top

7 楼buding()回复于 2001-04-30 13:30:00 得分 0

其实   return   strTemp时,它会调用CString(CString&),只要在这个函数中深拷贝就行了。Top

8 楼buding()回复于 2001-04-30 13:32:00 得分 0

好象不能给分啊。。。Top

9 楼elang(忆郎)回复于 2001-04-30 14:34:00 得分 5

to   buding()   
        string   的确是在栈里分配的Top

10 楼tsingbo(tsingbo)回复于 2001-04-30 19:09:00 得分 15

如果你要弄清楚这个问题,用Debug一步一步跟踪是最好的方法。  
  别人有可能会由于错误的经验而误导你,虽然大家都出于好意。  
   
  Top

11 楼godhand78(仙人掌)回复于 2001-04-30 20:09:00 得分 5

string   是在栈里分配的,不过return   strTemp时,不知道有没有进行深拷贝Top

相关问题

  • 释放内存
  • 内存释放
  • 内存释放
  • 释放内存?
  • 释放对象(CString型)的内存空间?
  • 郁闷,CString不能释放缓冲内存。
  • 内存未释放?
  • delphi中内存的释放
  • 怎样释放内存?
  • 释放内存的问题。

关键词

  • 函数
  • 内存
  • 分配
  • strget
  • cstring
  • 释放
  • 调用
  • 字符串
  • strtemp
  • 变量

得分解答快速导航

  • 帖主:buding
  • elang
  • lazyeric
  • taosi
  • zhaowuqing
  • yinxingshu
  • elang
  • tsingbo
  • godhand78

相关链接

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

广告也精彩

反馈

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