登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-05-03 16:30:04 327浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何通过 golang 中的 CGO 将 Go 字符串复制到 C char *?》,主要内容是讲解golang等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

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

我可以这样做吗?

func copy_string(cstr *C.char) {

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

}

正确答案

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

cstr = C.CString(str)

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

C.free(unsafe.Pointer(cstr))

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何通过 golang 中的 CGO 将 Go 字符串复制到 C char *?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>