如何在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))