如何在cgo中初始化空C.CString
How to initialise empty C.CString in cgo
您认为在 CGO 中初始化长度为 x 的 C.CString 的最佳方法是什么?背景:我需要一个适当大小的 char* 作为 C 函数参数,但我想可以改进以下代码:
// length = 6
var buffer [6]byte
name := C.CString(string(buffer[:6]))
defer C.free(unsafe.Pointer(name))
或
// length = 6
name := C.CString(" ")
defer C.free(unsafe.Pointer(name))
如果您不需要转换字符串,只需 malloc 您需要的大小:
s := C.malloc(6)
defer C.free(unsafe.Pointer(s))
您认为在 CGO 中初始化长度为 x 的 C.CString 的最佳方法是什么?背景:我需要一个适当大小的 char* 作为 C 函数参数,但我想可以改进以下代码:
// length = 6
var buffer [6]byte
name := C.CString(string(buffer[:6]))
defer C.free(unsafe.Pointer(name))
或
// length = 6
name := C.CString(" ")
defer C.free(unsafe.Pointer(name))
如果您不需要转换字符串,只需 malloc 您需要的大小:
s := C.malloc(6)
defer C.free(unsafe.Pointer(s))