栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

CGO:如何在Golang中使用指针从C中的数组访问数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CGO:如何在Golang中使用指针从C中的数组访问数据

由于库作者没有构造切片标头供您使用,而是需要将返回值强制转换为an

unsafe.Pointer
,然后转换为a,
uintptr
这将允许您对其执行指针算术,以稍后在内存中获取元素。

这是一些示例代码,应在移动操场上按原样运行。

package mainimport (    "fmt"    "unsafe")func main() {    nums := []uint8{1, 2, 3, 4, 5, 6, 7, 8}    val := &nums[0] // val is the equivalent of the *uint8 the Data function returns    ptr := unsafe.Pointer(val)    sixthVal := (*uint8)(unsafe.Pointer(uintptr(ptr) + 5*unsafe.Sizeof(*val)))    fmt.Println("Sixth element:", *sixthVal)}

当然,您需要非常确定自己知道有多少个元素,以便不访问无效的内存。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403821.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号