最早提出弱引用的是哪种语言

196 天前
 James369

最近写 C 语言,发现其它高级语言中的弱引用真是好东西,有了它不会出现 C 中的悬挂指针问题。

不知道 C 语言如何实现类似效果。

2384 次点击
所在节点    程序员
10 条回复
James369
196 天前
或者说,C 语言中如何优雅的编程,来尽量避免出现悬挂指针?
就是假设 外界用户的一个指针 p 指向了一个结构,当这个结构释放的时候,告之外界将指针 p 置为 NULL 也行
Aloento
196 天前
你自己去 CPP 抄一份 weak_ptr 实现就行了
weeei
196 天前
@Aloento 还要抄 shared_ptr 才能配套使用
weeei
196 天前
纯 C 语言里没有 RAII 机制的,需要使用 gnu 语言扩展中的 __attribute__((cleanup (func))); 在超出作用域的时候能处理逻辑。
PTLin
195 天前
包个结构,配合对应 api ,然后用这个替代指针
passive
195 天前
这个年代写 C ,开 asan 是正确的姿势。
LokiSharp
195 天前
只是 C 标准库不提供,完全可以自己实现一个
weeei
195 天前
nuk
195 天前
当然是加一套 gc 啦,https://github.com/ivmai/bdwgc
James369
195 天前
@weeei 这个实现还挺优雅的 https://github.com/Snaipe/libcsptr

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/986256

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX