Pointers 删除同一指针副本上的指针的效果(C+;+;/C)

Pointers 删除同一指针副本上的指针的效果(C+;+;/C),pointers,copy,Pointers,Copy,我有一个简单和/或多余的问题,但我找不到我的版本的答案。我希望有人能回答我而不要对我发火 我有两个指针p1和p2,如下所示: 1.p1是使用新的(p1=new structObject;)创建的 2.p2是p1的副本(p2=p1) 删除两个指针中的任何一个(例如,删除p1)会产生什么影响? 换句话说,删除p1后使用p2安全吗?否。通过p2访问是不安全的。内存被释放,对它的任何访问(从任何指针)都是未定义的行为两个p1ansp2都被分配到相同的地址。 由于此地址的分配对象已被删除(无论使用哪一个指

我有一个简单和/或多余的问题,但我找不到我的版本的答案。我希望有人能回答我而不要对我发火

我有两个指针p1和p2,如下所示: 1.p1是使用新的(p1=new structObject;)创建的 2.p2是p1的副本(p2=p1)

删除两个指针中的任何一个(例如,删除p1)会产生什么影响?
换句话说,删除p1后使用p2安全吗?

否。通过
p2
访问是不安全的。内存被释放,对它的任何访问(从任何指针)都是未定义的行为

两个
p1
ans
p2
都被分配到相同的地址。
由于此地址的分配对象已被删除(无论使用哪一个指针),standard声明访问它会导致未定义的行为,因此使用任何指针访问它是不安全的。

您永远不会“删除指针”。您总是删除通过指针引用的对象。那可能会把事情弄清楚的。谢谢。我猜我仍然可以从另一个指针读取对象的事实是不安全的。