C++ 删除后立即分配给指针

C++ 删除后立即分配给指针,c++,pointers,C++,Pointers,我想知道这样做是否安全 delete p_pointer; p_pointer = p_otherPointer; 而不是 delete p_pointer; p_pointer = 0; p_pointer = p_otherPointer; 我假设是这样,因为删除和分配之间没有任何新的内存分配,但我只想确保。是的,它是安全的。如果仍要重新分配删除的指针,则将其设置为NULL是没有用的。人们将已删除指针设置为NULL的原因是,他们可以将其“标记”为已删除,以便以后可以检查它是否已被删除。是

我想知道这样做是否安全

delete p_pointer;
p_pointer = p_otherPointer;
而不是

delete p_pointer;
p_pointer = 0;
p_pointer = p_otherPointer;

我假设是这样,因为删除和分配之间没有任何新的内存分配,但我只想确保。

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

是<代码>删除是一个运算符。您向它传递一个指针,它将删除该指针指向的对象。它对指针本身没有任何作用


在这一点之后,您不能再使用指针所具有的值解除对指针的引用,但您可以继续使用指针变量本身,例如,将其指向适当类型的不同对象。

实际上
auto_ptr::reset
正是这样做的(至少在我看到的实现中是这样)

因为如果他们不小心调用了
delete
反对,它应该在空指针上表现良好。