ich den folgenden Code in Go haben, die CGO verwendet:Garbage Collection in CGO
func foo() {
bar := new(C.struct_bar)
...
}
Wird Müll gesammelt bar, nachdem die Funktion ihre Ausführung beendet oder muss ich ausdrücklich frei anrufen?
Ein Follow-up, wenn ich einen C Char Zeiger mit Punkt: = neu (C.char) zugewiesen und dann übergeben es als Argument an eine C-Funktion, die etwas Speicher für diesen Zeiger zugewiesen, dann würde dieser Speicher freigegeben werden durch den Müllsammler oder nein? – user2424276
@ user2424276: 'new (C.char)' weist ein einzelnes Byte zu, das später vom GC erfasst wird. Wenn die C-Funktion den Speicher zuweist, weisen Sie in go nichts zu, geben Sie einfach einen Zeiger ein. – JimB