c++ - 删除指针和将其设置为 nullptr 之间有什么区别?

标签 c++ pointers memory heap-memory dangling-pointer

<分区>

delete pointerpointer = nullptr 是一样的吗?可能不是,但后者会释放内存吗? delete pointer 怎么样? pointer = nullptr/pointer = nullptr;删除指针?为什么不使用它来提供一种安全的方法来在需要时过早删除指针,因为它们通常会在其他时间被删除并导致正常删除出错?

最佳答案

pointer = nullptr; 就像去除名片上的墨水。您不再知道房子的位置,至少从查看那张特定的名片时是这样。但是房子还在。

delete pointer; 就像拆房子一样。名片仍然告诉你那所房子曾经在哪里,但如果你开车去那里(取消引用指针),你会看到房子不见了。或者更糟的是,他们可能同时在那个地址建立了一个核废料储存设施。

关于c++ - 删除指针和将其设置为 nullptr 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31618975/

相关文章:

c++ - 从 C++ 中的函数返回指针

c++ - 为什么内存位置被分配垃圾值?

c - long long Integer 的乘法错误是什么?

c++ - 不确定如何解决 'std::out_of_range' 错误

c++ - 如何生成不存在文件的名称并阻止其创建?

c - 如何在c中的函数中为结构指针分配内存

c++ - 指向一个索引的pointed

c++ - Python 等效于 vector::reserve()

c++ - 什么时候让一个对象删除自己?

ios - CFStreamCreatePairWithSocketToHost iOS 中的内存泄漏