c - C 中带有引用循环的智能指针

标签 c smart-pointers reference-counting

除了在 C 中执行此操作(现在回头太晚了),我还编写了一些支持 C 引用计数的结构和函数。基本上我已经实现了 C++ 样式的智能指针。不过,我的大问题是我在图形中使用它们(带有顶点和边的那种)并且在图形中使用了我的智能指针。因此,如果我有一个节点连接到一个连接到另一个节点的边缘,但我自己没有更多指向它们的指针,它们各自保留一个指向彼此的指针。因此,指针计数不会达到 0,它们永远不会释放自己。有没有办法在不完全放弃指针计数的情况下解决这个问题?

最佳答案

您应该研究如何实现 boost::weak_ptr 来打破 shared_ptr 的循环。

关于c - C 中带有引用循环的智能指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16502675/

相关文章:

c - 如何将值传递给整数指针

c - C中的 "undefined reference to varName"是什么意思?

json - 反序列化JSON并将叶子数据放入Rc结构的最佳方法是什么? [复制]

c++ - 共享指针不增加 use_count

c - 如何将两个printf的输出存储到c中的变量中

c++ - 理解以下来自CSAPP的汇编代码

c++ - 我如何从没有复制构造函数的函数返回一个类?

c++: std::tr1::shared_ptr 从这个

c++ - 为什么 make_shared 会破坏右值引用?

objective-c - 什么时候需要 NS_RETURNS_RETAINED?