c++ - 检查变量是否已被垃圾收集器声明

标签 c++ c garbage-collection

CC++中是否有一种方法可以检查垃圾收集器是否已声明变量,即检查它是否已被释放。

最佳答案

C 中没有垃圾收集。尽管标准在少数地方提到这种实现是可能的。不过,我不知道是否存在这样的实现。

在 C/C++ 中,无法知道对象是否已被删除。这是问题和错误的持续来源。尽管如此,我们必须忍受这一点。

做出此设计决定的主要原因是指针的简单性。它应该只是一个地址,没有其他内容。否则需要额外的开销。 C++中的内存是被使用和重用的。稍后,可以用一个大物体代替 2 个小物体,覆盖这 2 个小物体的整个空间。这意味着无法在每个物体前面放置一些东西以允许检查。简单性和速度——这些是 C/C++ 的重要目标。释放/未释放/不确定指针的问题是良好性能的代价。

关于c++ - 检查变量是否已被垃圾收集器声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12811277/

相关文章:

c - fread 导致数组变得不可读

java - 可能的尝试/捕获和内存管理问题?

java - Java GC可以收集实例吗,而它是由方法使用的

java spring 和 bean 垃圾回收

C++ 为什么受约束的算法(例如 std::ranges::merge)也返回输入范围的结尾?

c++ - Ubuntu 11.10 链接 perftools 库

c - 在 switch 的情况下使用定义的字符

c - 限制通过错误索引访问数组

c++ - 访问函数变体时出现 "Invalid conversion"错误

c++ - 使用 SDL_mixer 播放一个接一个的声音?