存在该
runtime.SetFinalizer功能,但不能在C代码分配的任何对象上使用。
但是,您可以为每个需要自动释放的C对象创建一个Go对象:
type Stuff struct { cStuff *C.Stuff}func NewStuff() *Stuff { s := &Stuff{C.NewStuff()} runtime.SetFinalizer(s, (*Stuff).Free) return s}func (s *Stuff) Free() { C.Free(s.cStuff)}


