如何通过golang中的CGO将Go字符串复制到C字符*?

如何通过golang中的CGO将Go字符串复制到C字符*?,go,cgo,Go,Cgo,我想通过CGO将Go字符串复制到char*中 我可以这样做吗 func copy_string(cstr *C.char) { str := "foo" C.GoString(cstr) = str } 根据需要,您需要使用C.CString函数将Go字符串转换为C字符串: cstr = C.CString(str) 请注意,C.CString函数为您分配内存,但不会释放内存,因此您有责任通过如下调用释放内存: C.free(unsafe.Pointer(cstr))

我想通过CGO将Go字符串复制到char*中

我可以这样做吗

func copy_string(cstr *C.char) {

    str := "foo"
    C.GoString(cstr) = str

}
根据需要,您需要使用C.CString函数将Go字符串转换为C字符串:

cstr = C.CString(str)
请注意,C.CString函数为您分配内存,但不会释放内存,因此您有责任通过如下调用释放内存:

C.free(unsafe.Pointer(cstr))
使用
cstr=C.CString(str)

不适合我,所以我选择了我直接看到的东西:
C.strcpy((*C.char)(cstr),(*C.char)(C.CString(str))

更好地使用
延迟C.free(不安全的.Pointer(cstr))
当函数返回时,go将调用