c++ - 删除指向同一个变量的指针

标签 c++ pointers memory-management

下面的代码是从一本书中摘录的代码的浓缩版,想法是创建一个ptr变量的拷贝,然后让ptr变量指向到不同的地址,最后删除临时指针。

如果我的理解是正确的,那么在临时指针上调用 delete 是否实际上删除了原始的 num 变量?由于临时指针和 num 都是悬挂指针,将它们都设置为 NULL 是否正确?

int *num = new int(5);
int num1 = 10;

int *ptr = num;
int *temp = ptr;

ptr = &num1;

delete temp;
temp = NULL;
num = NULL;

最佳答案

是的:你分配的一件事被删除了。我不确定你所说的将 NULL 分配给变量是正确是什么意思,但是在这样做之前它们的值不再指向分配的内存,它肯定不是 主意。

关于c++ - 删除指向同一个变量的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35690405/

相关文章:

c++ - 配置 netbeans 8.0 gdb 以使用 gradle cpp 插件

c++ - 使用指针指向字符串中的某些字符

objective-c - Apple 的 Objective-C 运行时如何在不降低性能的情况下进行多线程引用计数?

c++ - malloc 失败条件

c++ - 从 char* 初始化 std::string 而不复制

c++ - 为什么初始化对象的两种不同方式给出不同的输出

c++ - 在 c++ builder 中启动时打开两个窗体

c++ - 在程序关闭期间终止 Qt 工作线程

C++ : Understanding "this" Pointer

javascript - 在javascript中解析当前用户的检索指针