c++ - 删除后立即赋值给指针

标签 c++ pointers

我想知道这样做是否安全......

delete p_pointer;
p_pointer = p_otherPointer;

而不是...

delete p_pointer;
p_pointer = 0;
p_pointer = p_otherPointer;

我会这么认为,因为在删除和赋值之间没有任何新的内存分配,但我只是想确定一下。

最佳答案

是的,它是安全的。如果您无论如何要重新分配它,将已删除的指针设置为 NULL 是没有用的。人们将 deleted 指针设置为 NULL 的原因是他们可以将其“标记”为已删除,以便稍后他们可以检查它是否已被删除。

关于c++ - 删除后立即赋值给指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1736199/

相关文章:

C++ Qt - QTcpSocket - 找不到文件

c - 警告 : Incompatible pointer types assigning to 'node_t *' (aka 'struct node *' ) from 'mode_t' (aka 'unsigned int *' )

c++ - 使用指针调用函数时出错

c - 传递一个指向数组的指针

c - 为什么以下 C 程序片段会给出此输出?

c++ - 在头文件中声明和定义且仅在其 cpp 文件中使用的变量的多重定义错误

c++ - 检查类是否在继承层次结构中明确定义成员类型

c++ - 如何访问 std::vector 迭代器中的 std::map 属性?

C++11,返回 vector 函数风格的 move 语义

c - 使用 malloc 为其分配内存后如何加载结构?