目前,我正在使用Cgo从Go调用C函数。我正在尝试在Go中重新创建“读取照片”示例。
但是,C函数上的一个函数需要一个自int* len变量(奖励问题;是否与int *len?相同)。在我阅读本文时,这是一个指向整数的指针。有问题的函数是ccv_writelibccv库的。完整的签名是:
int ccv_write(ccv_dense_matrix_t* mat, char* out, int* len, int type, void* conf)
相关代码段如下:
type Image struct {
image *C.ccv_dense_matrix_t
}
func main() {
image := new(Image)
/* ... snip ... */
dst := C.CString("black_and_white_painting.jpg")
defer C.free(unsafe.Pointer(dst))
x := 0 // <- perhaps var x int ?
C.ccv_write(image.image, dst, (*C.int)(&x), C.CCV_IO_PNG_FILE, 0)
}
上面的示例生成以下编译时错误: cannot convert &x (type *int) to type *_Ctype_int
关于如何传递正确的论点有什么想法?
慕侠2389804
绝地无双
相关分类