gpt4 book ai didi

c++ - 如何对两个指针指向的变量使用 delete?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:33 26 4
gpt4 key购买 nike

假设我有一个用 new 声明的假想指针,如下所示:

int* hypothetical_pointer = new int;

并创建另一个具有相同值的假设指针:

int* another_hypothetical_pointer = hypothetical_pointer;

如果我要删除这些用 new 声明的指针,我是否必须删除两个指针,或者只删除用 new 显式声明的指针?或者我可以删除任一指针吗?

最佳答案

delete 销毁指针指向的动态分配对象。有一个或 100 个指针指向该对象并不重要,您只能销毁一个对象一次。

delete hypothetical_pointer; 后,您不能使用 hypothetical_pointeranother_hypothetical_pointer,因为它们都不指向有效对象。

如果你需要有多个指针指向同一个对象,你应该使用一个共享所有权的智能指针,比如shared_ptr,以确保对象不会被过早销毁并且被销毁恰好一次。 C++ 中的手动资源管理充满了危险,应该避免。

关于c++ - 如何对两个指针指向的变量使用 delete?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4392546/

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