在C ++中应用删除操作符后,地址会发生什么? [英] What happens to an address after delete operator has been applied to it in C++?
问题描述
如果我删除
一个指针,如下所示:
If I delete
a pointer as follows for example:
delete myPointer;
然后,不指定 0
到指针如下:
And, after that did not assign 0
to the pointer as follows:
myPointer = 0; //skipped this
将 myPointer
到另一个内存地址?
推荐答案
不,在大多数实现中它将存储与以前相同的地址 - delete
通常不会更改地址,除非您分配一个新的地址值,它保持不变。但是,这不是始终保证。
No, in most implementations it will store the same address as previously - delete
usually doesn't change the address and unless you assign a new address value it remains unchanged. However this is not always guaranteed.
不要忘记, delete 的任何东西, / code> d指针是未定义的行为 - 您的程序可能会崩溃或不正常行为。
Don't forget, that doing anything except assigning a null pointer or another valid pointer to an already delete
d pointer is undefined behavior - your program might crash or misbehave otherwise.
这篇关于在C ++中应用删除操作符后,地址会发生什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!