对象返回函数的对象删除问题

sunlau29 2007-10-13 10:23:50
如下:
typedef struct
{
...
...
}S;

class A
{
private:
...
public:
S Func()
{
S k;
....
return k;
}
};

结构体对象 k 会不会在 return 操作后,由于没有进行delete 操作而引起内存泄漏?如果要 delete k,那应该如何操作?
...全文
91 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunlau29 2007-10-14
  • 打赏
  • 举报
回复
谢谢这么多位前辈的指点。最近在看《effective C++》,所以总会想到自己写的代码里面会不会有些内存问题,所以就请教各位了。谢谢了!!
sinkileu 2007-10-13
  • 打赏
  • 举报
回复
倒……
C++中没有new(申请堆空间),就不要delete。
k叫做局部对象,或者更贴切地说,叫“自动对象”,出了作用域就会自动销毁。
当返回Func时,会进行一个结构拷贝动作!
ckt 2007-10-13
  • 打赏
  • 举报
回复
不会,
局部变量是在堆栈上的,系统帮你释放的
只有你用new在堆上申请的空间,才需要你去delete清理
飞哥 2007-10-13
  • 打赏
  • 举报
回复
搞清堆和栈是什么东西

管理好堆上的东西
至于站上的,不要在他自动消亡之后还用

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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