go - 如何将 void * 内存从 cgo 复制到切片
问题描述
Go 程序调用了一个 C 库,并获得了一个以 avoid *
和它的size
.
现在我需要将该内存复制到一个切片中,该怎么做?
func recvData(data unsafe.Pointer, size C.size_t) []byte {
s := make([]byte, size, size)
// now copy data into s
return s
}
我知道通过反射,我可以调用C.memcpy
copy data
to s.Data
,但它似乎效率低下。
有没有更好的办法?
解决方案
推荐阅读
- rust - 特定二进制的条件代码编译
- python - python selenium 从多个href列表中抓取
- python - 如何在 Python 中规范化来自 Mysql 的数据挖掘 Min Max
- regex - UBUNTU 中的 REGEX 模式,只获得一个单词的完全匹配,没有空格
- android - Android(设备模式)向主机发送批量数据
- mongodb - MongoDB Setunion 和 Group by
- php - 用于获取仅包含模式列表中单词的字符串的正则表达式?
- python - 查找多个最大值
- scheme - 方案中的复数 sqrt 函数
- docker - Docker 镜像无法运行