在C
和C++
中是否有一种方法可以检查垃圾收集器是否已声明变量,即检查它是否已被释放。
最佳答案
C 中没有垃圾收集。尽管标准在少数地方提到这种实现是可能的。不过,我不知道是否存在这样的实现。
在 C/C++ 中,无法知道对象是否已被删除。这是问题和错误的持续来源。尽管如此,我们必须忍受这一点。
做出此设计决定的主要原因是指针的简单性。它应该只是一个地址,没有其他内容。否则需要额外的开销。 C++中的内存是被使用和重用的。稍后,可以用一个大物体代替 2 个小物体,覆盖这 2 个小物体的整个空间。这意味着无法在每个物体前面放置一些东西以允许检查。简单性和速度——这些是 C/C++ 的重要目标。释放/未释放/不确定指针的问题是良好性能的代价。
关于c++ - 检查变量是否已被垃圾收集器声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12811277/