gpt4 book ai didi

c - 转到 []string 到 C char**

转载 作者:IT王子 更新时间:2023-10-29 00:45:38 26 4
gpt4 key购买 nike

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

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

我仔细查看了有关如何从 Go 到 C 的变量类型转换的任何信息,但似乎几乎没有文档。任何帮助将不胜感激。

最佳答案

您需要自己创建数组。应该这样做:

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])

关于c - 转到 []string 到 C char**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com