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