C中的简易垃圾收集

时间:2017-02-20 23:45:41

标签: c garbage-collection

我的主要问题是:如何编写一个简单易懂的C垃圾收集算法?我正在尝试学习C(不是C ++)并编写我自己的C垃圾收集算法,但我遇到了问题。我如何知道我的结构何时可以被释放?我怎么知道结构在返回后何时准备好在函数内释放?我应该使用带或不带指针的结构?我发现这篇文章说垃圾收集很简单: https://cboard.cprogramming.com/c-programming/94327-garbage-collection-not-so-complicated.html

我想知道“动态对象存储在带有类型标记和标记位的联合中”是什么以及“对对象使用双重间接”是什么意思?这真的是一个简单的方法吗?我如何用C代码写这个?

提前致谢

1 个答案:

答案 0 :(得分:-2)

进行垃圾收集的超级简单方法是以某种方式保持对malloc'd位置的引用数量的计数。当该计数器命中0然后free()该内存位置。

话虽如此,在C中进行垃圾收集可能没那么有意义,因为C没有对象和其他结构,而不是自己被“收集”,所以你必须更直接地管理你的记忆