下面的代码是从一本书中摘录的代码的浓缩版,想法是创建一个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/