C.GoString( .. )? Исходя из документации вроде бы нет, но C.free((unsafe.Pointer)( .. )) работает без нареканий.
Из доки C.GoString:
// C string to Go string
func C.GoString(*C.char) string
Ну и C.CString естественно:
// Go string to C string
// The C string is allocated in the C heap using malloc.
// It is the caller's responsibility to arrange for it to be
// freed, such as by calling C.free (be sure to include stdlib.h
// if C.free is needed).
func C.CString(string) *C.char
Упустил, что в доке написано: A few special functions convert between Go and C types by making copies of the data. In pseudo-Go definitions. Так что высвобождать оригинальную строку - обязательно.
Обсуждают сегодня