如何初始化cgo中的空C.CString

时间:2017-01-31 09:14:55

标签: go cgo

您认为在CGO中初始化长度为x的C.CString的最佳方法是什么?背景:我需要一个适合C函数参数的char *,但我想下面的代码可以改进:

$stmt3 = sqlsrv_query( $conn, $sp_name, $params, array( "Scrollable" => 'static'));

// length = 6
var buffer [6]byte
name := C.CString(string(buffer[:6]))
defer C.free(unsafe.Pointer(name))

1 个答案:

答案 0 :(得分:1)

如果您不需要转换字符串,只需要malloc所需的大小:

s := C.malloc(6)
defer C.free(unsafe.Pointer(s))