pointers - 垃圾引用和悬空引用有什么区别?

标签 pointers memory-management reference garbage

垃圾引用和悬空引用有什么区别?

最佳答案

悬空引用是对不再存在的对象的引用。垃圾是无法通过引用访问的对象。

在垃圾收集语言中不存在悬空引用,因为对象仅在不再可访问时才被回收(仅收集垃圾)。在某些语言或框架中,您可以使用“弱引用”,这可能会悬而未决,因为它们在集合传递期间不被考虑。

在手动内存管理的语言中,如 C 或 C++,你可能会遇到悬空指针,例如:

int * p = new int;
delete p;

int i = *p; // error, p has been deleted!

关于pointers - 垃圾引用和悬空引用有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900165/

相关文章:

.net - 从托管代码中释放非托管内存分配

function - 间接函数引用

C++:为什么我们不能引用引用或引用数组?

c - 低级 printf

c++ - C++ 中使用 char* 的指针算术

c - 取消引用指针的问题

c++ - 动态内存分配/利用未使用的内存

java - ThreadMXBean.getThreadAllocationBytes(long id) 中包含哪些 JVM 运行时数据区域

rust - 有效地获取Vec <Ref <'a, T>> from Ref<' a,BTreeSet <T >>

c - 理解 C 中的结构体和指针变量