【发布时间】:2016-02-29 01:07:19
【问题描述】:
下面的代码是一本书的代码摘录的浓缩版本,其想法是创建 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;
【问题讨论】:
-
您的代码是正确的。
delete删除指向的对象(它不是基于指针的引用计数释放,或类似的东西)
标签: c++ pointers memory-management