How do I copy a Go string to a C char * via CGO in golang?

若如初见. 提交于 2019-11-28 04:02:11

问题


I want to copy a Go string into a char * via CGO.

Am I allowed to do this something like this?

func copy_string(cstr *C.char) {

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

}

回答1:


According to the cgo documentation you need to use the C.CString function to convert a Go string to a C string:

cstr = C.CString(str)

Be aware that C.CString function allocates the memory for you, but won't release it, so it is your responsability to freed the memory with a call like:

C.free(unsafe.Pointer(cstr))


来源:https://stackoverflow.com/questions/39023475/how-do-i-copy-a-go-string-to-a-c-char-via-cgo-in-golang

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!