我试图在我的 Go 代码中实例化一个 C 结构。结构体是这样定义的(在我无法修改的外部库中):
typedef struct {
char field1[256];
} S1
在go中,我这样做了:
func myfunc(mystr string){
// We need to convert mystr from string to char array
cStr := C.CString(mystr)
defer C.free(unsafe.Pointer(cStr)
// Should work now
s1 := &C.S1{field1: cStr}
// Do something with s1...
}
但它不能编译,因为:
不能在字段值中使用 cStr(类型 *C.char)作为类型 [256]C.char
我试过强制 ([256]C.char)(cStr) 但它显然也不起作用。
有没有办法实现我想要做的事情?
蝴蝶刀刀
相关分类