这里unique_ptr会有内存泄漏吗?
Will there be memory leak in unique_ptr here
#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 NULLn";
else
cout<<"It's NULL NOWn";
return 0;
}
由于我将 NULL 分配给 p,当程序完成时,它将删除 p 的//具有 NULL。虽然删除 NULL 不会造成任何问题,但 p//更早的内存不会释放。我说得对吗.
不会有内存泄漏,尽管您应该使用 p = nullptr
而不是 p = NULL
。这是因为std::unique_ptr
重载nullptr_t
类型的赋值运算符:
从标准来看,效果
unique_ptr& operator=(nullptr_t) noexcept;
就是叫reset()
.反过来,这又释放了任何指向的记忆。
相关文章:
- 从构造函数抛出异常时如何克服内存泄漏
- malloc() 可能出现内存泄漏
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 尽管遵循了规则,内存泄漏在哪里
- 为什么调用堆栈数组会导致内存泄漏
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 使用模板类的自定义列表类型中的内存泄漏
- 为什么以下C++代码中存在内存泄漏?
- OpenCV 我应该使用智能指针来防止内存泄漏吗?
- 我是否生成线程并导致内存泄漏?
- 多线程程序中出现意外的内存泄漏
- 为什么此函数会导致内存泄漏?
- 在 C++ 库中使用cythonized python时内存泄漏
- 需要帮助查找内存泄漏
- 瓦尔格林德的内存泄漏使用新的
- 无法找出我的代码中的内存泄漏
- C++ 结构内部的unordered_map会导致内存泄漏问题吗?
- 可视化 使用 VS Code 查找C++应用程序中的内存泄漏
- Shared_ptr双链接列表内存泄漏
- C++ 在类中使用常量引用文本时 O2 内存泄漏