gpt4 book ai didi

c++ - 空悬挂指针 C++

转载 作者:行者123 更新时间:2023-11-30 03:14:14 25 4
gpt4 key购买 nike

我有一个指向抽象类对象ptr1 的指针。我需要创建另一个具有相同地址 ptr2 的指针,这样当您释放 ptr1 指针并将其归零时,ptr2 也会变为零。

SomeObject* ptr1 = new SomeObject();
SomeObject* ptr2 = ptr1;

delete ptr1;
ptr1 = nullptr; // after that ptr2 should be nullptr

我知道这是悬空指针问题,可以用智能指针解决,但我想不用它们来解决。预先感谢您的帮助!

最佳答案

ptr2 声明为对 ptr1 的引用或指针,即以下之一:

SomeObject* &ptr2 = ptr1;
SomeObject** ptr2 = &ptr1;

通过只有一个指针实例并确保它仅通过指向指针实例的引用或指针传递,您可以确保不存在指针的过时拷贝。

关于c++ - 空悬挂指针 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58051840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com