登录
首页 >  Golang >  Go问答

如何将 [1024]C.char 转换为 [1024]byte

来源:Golang技术栈

时间:2023-04-16 12:35:08 204浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《如何将 [1024]C.char 转换为 [1024]byte》将会介绍到golang等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

如何转换此 C(数组)类型:

char my_buf[BUF_SIZE];

到这个 Go (array) 类型:

type buffer [C.BUF_SIZE]byte

? 尝试进行接口转换会给我这个错误:

cannot convert (*_Cvar_my_buf) (type [1024]C.char) to type [1024]byte

正确答案

最简单和最安全的方法是将其复制到切片中,而不是专门复制到[1024]byte

mySlice := C.GoBytes(unsafe.Pointer(&C.my_buff), C.BUFF_SIZE)

要在没有副本的情况下直接使用内存,您可以通过unsafe.Pointer.

mySlice := (*[1 

到这里,我们也就讲完了《如何将 [1024]C.char 转换为 [1024]byte》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

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