0
我想通過CGO將Go字符串複製到char *中。如何通過golang中的CGO將Go字符串複製到C char *中?
我可以這樣做嗎?
func copy_string(cstr *C.char) {
str := "foo"
C.GoString(cstr) = str
}
我想通過CGO將Go字符串複製到char *中。如何通過golang中的CGO將Go字符串複製到C char *中?
我可以這樣做嗎?
func copy_string(cstr *C.char) {
str := "foo"
C.GoString(cstr) = str
}
按照cgo documentation您需要使用C.CString功能將轉至字符串轉換爲C字符串:
cstr = C.CString(str)
注意C.CString功能分配內存給你,但不會釋放它,所以它是你的責任,以釋放的內存與像一個電話:
C.free(unsafe.Pointer(cstr))
更好地與'推遲C.free(unsafe.Pointer(CSTR))'去會打電話的時候函數返回 – Bear0x3f