cgo**char到切片字符串

dzjeubhm  于 2023-11-14  发布在  Go
关注(0)|答案(1)|浏览(184)

我用cgo开发了一个pam模块。不能转换为[]字符串a**char
第一个月
误差
invalid operation: argv[0] (type **C.char does not support indexing)
请让我知道如果你知道。

qzlgjiam

qzlgjiam1#

从cgo wiki上拼凑而成:https://github.com/golang/go/wiki/cgo#turning-c-arrays-into-go-slices。

  1. import "C"
  2. import "unsafe"
  3. func GoStrings(argc C.int, argv **C.char) []string {
  4. length := int(argc)
  5. tmpslice := (*[1 << 30]*C.char)(unsafe.Pointer(argv))[:length:length]
  6. gostrings := make([]string, length)
  7. for i, s := range tmpslice {
  8. gostrings[i] = C.GoString(s)
  9. }
  10. return gostrings
  11. }

字符串

相关问题