我试图了解标记和清除算法在一段代码中实际上是如何工作的。
我知道每次我 malloc() 时,我的 malloc() 函数都会将内存地址添加到链表中吗?然后,当我想进行垃圾回收时,我调用 mark() 函数,该函数接收一个“根”对象,然后从那里标记所有可访问的内存地址。然后我调用sweep() 并释放所有未标记的内存地址。
我对什么是“根”对象以及标记函数如何决定可以从“根”对象访问哪些对象感到困惑。
我认为如果有人能够给我一个关于标记和清除算法如何在一段代码中工作的小例子,这真的会对我有帮助......没有找到。
谢谢你。