【发布时间】:2019-06-08 07:50:51
【问题描述】:
C部分:
struct Person {...}
struct Person * get_team(int * n)
Go 部分:
n := C.int(0)
var team *C.struct_Person = C.get_team(&n)
defer C.free(unsafe.Pointer(team))
我可以通过这种方式获取数组的第一个元素。但是如何获得包含 n 个元素的整个数组呢? 以及如何安全地释放它们?
【问题讨论】:
-
您可能希望/需要将 C 指针(以及隐含长度 n??)转换为 Go 切片。这很重要,也许是一些使用反射的支持代码?