这个代码泄漏内存吗? (引用,新,但不删除) [英] Does this code leak memory? (references, new, but no delete)

查看:134
本文介绍了这个代码泄漏内存吗? (引用,新,但不删除)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:

Possible Duplicate:
Does using references instead of pointers, resolve memory leaks in C++?

当我提出这个问题时

使用引用而不是指针来解决C ++中的内存泄漏吗?

一个新问题出现,我在这篇文章中提出。

A new question appears and I ask it in this post.

这个代码是否泄漏内存?

Does this code leak memory?

class my_class
{
  ...
};

my_class& func()
{
  my_class* c = new my_class;
  return *c;
}

int main()
{
  my_class& var1 = func();

  // I think there is no memory leak.
  return 0;
}


推荐答案

。由 new 创建的所有内容必须由 delete 销毁。在您的代码中有 new ,但没有 delete 。这将立即意味着 new ed内存泄漏。

Yes, it does leak memory. Everything that was created by new has to be destroyed by delete. There's new in your code, but no delete. That immediately means that the newed memory is leaked.

这篇关于这个代码泄漏内存吗? (引用,新,但不删除)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆