最近写 C 语言,发现其它高级语言中的弱引用真是好东西,有了它不会出现 C 中的悬挂指针问题。
不知道 C 语言如何实现类似效果。
|      1James369 OP 或者说,C 语言中如何优雅的编程,来尽量避免出现悬挂指针?  就是假设 外界用户的一个指针 p 指向了一个结构,当这个结构释放的时候,告之外界将指针 p 置为 NULL 也行 | 
|  |      2Aloento      2023-10-28 17:40:53 +08:00 你自己去 CPP 抄一份 weak_ptr 实现就行了 | 
|  |      4weeei      2023-10-28 17:51:40 +08:00  1 纯 C 语言里没有 RAII 机制的,需要使用 gnu 语言扩展中的  __attribute__((cleanup (func))); 在超出作用域的时候能处理逻辑。 | 
|  |      5PTLin      2023-10-28 18:17:31 +08:00 包个结构,配合对应 api ,然后用这个替代指针 | 
|  |      6passive      2023-10-28 20:35:27 +08:00 via Android  2 这个年代写 C ,开 asan 是正确的姿势。 | 
|  |      7LokiSharp      2023-10-28 20:38:27 +08:00 via iPhone 只是 C 标准库不提供,完全可以自己实现一个 | 
|  |      8weeei      2023-10-28 21:56:43 +08:00 | 
|  |      9nuk      2023-10-28 22:20:43 +08:00 当然是加一套 gc 啦,https://github.com/ivmai/bdwgc | 
|      10James369 OP @weeei 这个实现还挺优雅的 https://github.com/Snaipe/libcsptr |