【发布时间】:2016-08-01 06:51:50
【问题描述】:
#include<iostream>
#include<memory>
using namespace std;
int main()
{
unique_ptr<int> p(new int);
*p = 10;
cout<<*p<<endl;
p = NULL;
if(p)
cout<<"It's NOT NULL\n";
else
cout<<"It's NULL NOW\n";
return 0;
}
// 当我将 NULL 分配给 p 时,当程序完成时,它将删除 // 具有 NULL 的 p。虽然删除 NULL 不会导致任何问题,但 p //earlier 持有的内存不会被释放。我对么 。
【问题讨论】:
-
当您提问时,输入您用于代码的语言的标签。你的问题没有 c++ 标签,c++ 开发人员不会看到你回答你的问题。
-
仅供参考,将其编码为使用您可以见证其中的破坏的东西,而不是简单的
int,例如您转储到标准输出的简单类类型析构函数,可能会把你推到正确的道路上。
标签: c++ c++11 memory-leaks