gpt4 book ai didi

C++ delete 对指针变量的影响

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

我有以下问题。

如果

int a = 5; 

int *b = new int(a); 

然后我做

delete b;

如果我没记错的话,它会删除 b 指向的对象。我不明白的是 b 发生了什么?

b 是否仍然是一个指针,指向由 new 创建的对象曾经所在的地址?

最佳答案

then I do delete b; it will delete the object a that b is pointing to

它将删除 b 指向 yes 的对象,但该对象与对象 a 无关(除了它们具有相同的值) .

What I dont understand is what happens to b? Does b remain a pointer pointing to the adress where the object created by new used to live.

这正是发生在 b 上的事情,即它没有任何反应。 delete 只影响动态内存管理和指向对象(调用其析构函数)。指针变量值本身不会改变,但之后是一个悬空指针。

关于C++ delete 对指针变量的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48358188/

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