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

时间:2015-05-20 22:07:11

标签: pointers copy

我有一个可能简单和/或多余的问题,但我无法找到我的版本的答案。我希望有人能在不给我发火的情况下回答。

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

InputStream ans p1都分配到同一地址。 由于删除了此地址的已分配对象(无论使用哪个指针),访问它的标准状态会导致未定义的行为,因此使用任何指针访问它都是不安全的。