c++ - 在 C++ 中应用删除运算符后,地址会发生什么变化?

标签 c++ pointers delete-operator

如果我删除一个指针,例如:

delete myPointer;

并且,之后没有0赋给指针如下:

myPointer = 0; //skipped this

myPointer 会指向另一个内存地址吗?

最佳答案

不,在大多数实现中,它将存储与以前相同的地址 - delete 通常不会更改地址,除非您分配一个新的地址值,否则它会保持不变。然而this is not always guaranteed .

别忘了,doing anything except assigning a null pointer or another valid pointer指向一个已经deleted 的指针是未定义的行为——否则你的程序可能会崩溃或行为不端。

关于c++ - 在 C++ 中应用删除运算符后,地址会发生什么变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4990462/

相关文章:

c - 引用数组 == 数组

c++ - 释放容器成员的内存

c++ - 删除内存和对相关位置数据的影响

c++ - 对参数包中的每个元素应用函数

c++ - 删除字符数组。替代方式?

C编程修改快速排序

c++ - 在 QT 中关闭时从子窗口句柄中删除内存

c++ - boost::filesystem::space() 报告错误的磁盘空间

c++ - std::thread 不是使用 Eclipse Kepler MinGW 的命名空间 std 的成员

c - 指针数组上的指针算术