【发布时间】:2013-05-11 23:26:04
【问题描述】:
除了在 C 中执行此操作(现在回头为时已晚)之外,我还编写了几个支持 C 引用计数的结构和函数。基本上我已经实现了 C++ 风格的智能指针。不过,我的大问题是我在图形中使用这些(具有顶点和边的那种),并且在图形中使用了我的智能指针。因此,如果我有一个节点连接到连接到另一个节点的边缘,但我自己没有更多指向它们的指针,它们每个都保留一个指向彼此的指针。因此,指针计数不会达到 0,它们永远不会释放自己。有没有办法在不完全放弃指针计数的情况下解决这个问题?
【问题讨论】:
-
这是一种让垃圾收集器感到兴奋的事情......或者,至少,这是他们必须相当小心处理的事情。您的问题与垃圾收集有关,但显然不一样。
-
不,这几乎是我的问题。我正在尝试编写一种通过内存管理编译成 C 的编程语言。
-
这个问题你解决了吗?我有类似的问题... :( stackoverflow.com/questions/19142499/…
-
@PauloTorrens 有点像?并不真地。从我对指针所做的所有研究中,我发现,用指针计数基本上不可能做到这一点,我必须为我分配的内存实现一种标记算法。
标签: c smart-pointers reference-counting