gpt4 book ai didi

memory-management - cgo中的垃圾收集

转载 作者:IT王子 更新时间:2023-10-29 01:55:00 29 4
gpt4 key购买 nike

我在使用 cgo 的 Go 中有以下代码:

  func foo() {
bar := new(C.struct_bar)
...
}

bar 会在函数完成执行后被垃圾回收吗?还是我需要显式调用 free?

最佳答案

是的,尽管 struct_bar 是 C 类型,但内存由 Go 分配,并由 Go 收集。

然而,在 C 中分配的任何内存都不会被 Go GC 跟踪。 C 代码应该自己管理它,但在像 C.CString 这样 Go 触发分配的情况下,您必须使用 C.free 手动释放内存。

关于memory-management - cgo中的垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36334384/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com