灵感来自 this question .
假设在 C++ 代码中我有一个有效的指针并正确地 delete
它。根据 C++ 标准,指针将变为无效(3.7.3.2/4 - 释放函数将使引用所有已释放存储部分的指针无效)。
至少在大多数实现中,它会保留值并存储与 delete
之前完全相同的地址,但是 using the value is undefined behavior .
标准是否保证指针将保留其值,或者该值是否允许更改?
最佳答案
不,不能保证,实现可以合法地将零分配给 delete
的 lvalue 操作数。
Bjarne Stroustrup 曾希望实现会选择这样做,但没有多少人这样做。
关于c++ - 在 C++ 中,指针是否保证在 `delete` 之后保留其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002055/