我可以转换从 Go 中的 C (cgo) 函数返回的字符串数组 (char**) 吗?下面的代码编译并运行,但我无法通过字符串列表进行范围。
而且我什至不确定它是否违反了“传递指针”的规则:https ://golang.org/cmd/cgo/ 任何想法都会有所帮助,自从我用 C 编码以来已经有好几年了!提前致谢!
package main
/*
#include "stdlib.h"
char** getlist ()
{
char **array = NULL;
array = (char**)realloc(array, 2*sizeof(*array));
array[0]="HELLO";
array[1]="WORLD";
return array;
}
*/
import "C"
import (
"log"
"unsafe"
)
func main() {
list := C.getlist();
log.Printf("\n========\n C.getList()=%s", list)
ulist := unsafe.Pointer(list)
log.Printf("\n========\nulist=%s", ulist)
}
斯蒂芬大帝
相关分类