我想知道在 C++ 中被“删除”运算符破坏的内存会发生什么。 以这种方式“破坏”内存是否意味着将给定的内存块设置为 0 或其他内容?
最佳答案
它正在销毁(如调用相关的析构函数)传递给 delete
的对象实例,然后“释放”内存以便它可以用于其他目的。
C++ 标准没有说明delete
后内存的内容是什么,当然也不能保证它为零或任何其他值——也不保证它不为零- 它可能被归零,它可能保留它之前的所有值,或者它的某些部分可能会被改变而其他部分保持不变。
C 和 C++ 作为语言的目标是“只做最少的必要工作”,因此典型的内存释放不会覆盖“旧”内存。
您当然可以在析构函数中使用代码在释放内存之前将其设置为零。
既然你不应该在内存被删除后使用它,那么这应该无关紧要。
关于c++ - C++ 中删除运算符的 'destroying' 内存是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16251539/