猿问

将 []string 转为 C 字符**

我开始尝试将一些 C 库集成到我使用 cgo 的项目的 Go 代码中,但遇到了一个问题。

在其中一个 C 函数中,我需要将 argv 传递给函数调用。在 C 中,argv 是一个指向字符字符串数组的指针(K&R C,第 5.10 节),我需要将字符串片段转换为字符**。

关于如何进行从 Go 到 C 的变量类型转换的任何信息,我已经很好地看了一遍,但似乎几乎没有文档。任何帮助,将不胜感激。


Qyouu
浏览 198回答 1
1回答

动漫人物

您需要自己创建数组。这样的事情应该做:argv := make([]*C.char, len(args))for i, s := range args {    cs := C.CString(s)    defer C.free(unsafe.Pointer(cs))    argv[i] = cs}C.foo(&argv[0])
随时随地看视频慕课网APP

相关分类

Go
我要回答