在C ++中应用删除操作符后,地址会发生什么? [英] What happens to an address after delete operator has been applied to it in C++?

查看:113
本文介绍了在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 deleted pointer is undefined behavior - your program might crash or misbehave otherwise.

这篇关于在C ++中应用删除操作符后,地址会发生什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆