Я не понимаю, какие переменные нужно освобождать, если я использую переменные C в Go.
Например, если я сделаю это:
s := C.CString(`something`)
Эта память теперь выделена до тех пор, пока я не вызову C.free(unsafe.Pointer(s))
, или это нормально, чтобы Go собирал мусор, когда функция завершается?
Или нужно освободить только переменные, созданные из импортированного кода C, и эти переменные C, созданные из кода Go, будут удалены сборщиком мусора?