cgo结果已经指针

时间:2018-02-08 13:34:25

标签: c go cgo

我正在写一些导出类似函数的代码:

package main
import "C"

//export returnString
func returnString() string {
    //
    gostring := "hello world"
    return gostring
}
func main() {}

我使用go build -buildmode = c-shared构建.so和头文件,但是当我在我的C代码中调用returnString()时,我得到了#pan; panic:运行时错误:cgo result has Go指针"

在1.9中有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:6)

您需要将go字符串转换为*C.charC.Cstring是实用功能。

package main

import "C"

//export returnString
func returnString() *C.char {
    gostring := "hello world"
    return C.CString(gostring)
}

func main() {}