我用cgo开发了一个pam模块。不能转换为[]字符串a**char第一个月误差invalid operation: argv[0] (type **C.char does not support indexing)个请让我知道如果你知道。
invalid operation: argv[0] (type **C.char does not support indexing)
qzlgjiam1#
从cgo wiki上拼凑而成:https://github.com/golang/go/wiki/cgo#turning-c-arrays-into-go-slices。
import "C"import "unsafe"func GoStrings(argc C.int, argv **C.char) []string { length := int(argc) tmpslice := (*[1 << 30]*C.char)(unsafe.Pointer(argv))[:length:length] gostrings := make([]string, length) for i, s := range tmpslice { gostrings[i] = C.GoString(s) } return gostrings}
import "C"
import "unsafe"
func GoStrings(argc C.int, argv **C.char) []string {
length := int(argc)
tmpslice := (*[1 << 30]*C.char)(unsafe.Pointer(argv))[:length:length]
gostrings := make([]string, length)
for i, s := range tmpslice {
gostrings[i] = C.GoString(s)
}
return gostrings
字符串
1条答案
按热度按时间qzlgjiam1#
从cgo wiki上拼凑而成:https://github.com/golang/go/wiki/cgo#turning-c-arrays-into-go-slices。
字符串