[英]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.