繁体   English   中英

函数 C++ 中的静态指针变量

[英]Static pointer variable in a function C++

如果我执行此代码,是否会产生内存泄漏? 如果不是内存泄漏,什么时候会删除内存?

class MyClass 
{
  public:
    void foo() {
      static MyClass *element = new MyClass(); 
    }
};

嗯,两者都有一点。

是的; 没有删除它的代码(关联的delete element )。

不; 它只会有一个实例,并且操作系统将在进程退出时回收内存。 内存使用量不会无限增长。

考虑到未来可能的维护和更改; 我倾向于使用std::unique_ptr并避免任何未来内存泄漏的风险。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM