在C
和C++
中是否有办法检查垃圾收集器是否已声明变量,即检查它是否已被释放。
答案 0 :(得分:3)
C中没有垃圾收集。虽然标准在很少的地方提到这种实现是可能的。不过,我不知道是否存在任何此类实现。
在C / C ++中,无法知道某个对象是否已被删除。这是问题和错误的持续来源。然而,我们必须忍受这一点。
此设计决策的主要原因 - 指针的简单性。它应该只是一个地址而不是别的。否则需要额外的开销。使用并重用C ++中的内存。一段时间后,代替2个小物体,可能会有一个大物体覆盖这些物体的整个空间。这意味着无法在每个物体前面放置物品以便进行检查。简单和速度 - 这些是C / C ++的重要目标。释放/未释放/不确定指针的问题是良好性能的代价。