【发布时间】:2020-05-25 09:27:26
【问题描述】:
假设堆上的一个对象超出范围。为什么程序不能在作用域结束后立即释放内存?或者,如果我们有一个指向一个对象的指针被一个新对象的地址替换,为什么程序不能在分配新对象之前释放旧对象?我猜不立即释放它会更快,而是在稍后的时间点异步完成释放,但我不太确定。
【问题讨论】:
-
您在这里只考虑最简单、分层的无分配使用场景,但大多数动态对象都是作为复杂数据结构的一部分生活的,如树、哈希表或各种图表,其中每个对象的生命周期与程序中事件的顺序不同步。