Currently I'm using Cgo to call C functions from Go. I'm trying to recreate the 'Read a Photo' example in Go.
One on the C functions, however, expects a int* len
argument (bonus question; is that the same as int *len
?). As I read this, this is a pointer to an integer. The function in question is ccv_write
of the libccv library. It's full signature is:
int ccv_write(ccv_dense_matrix_t* mat, char* out, int* len, int type, void* conf)
The relevant code snippet is as follows:
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)
}
The above example generates the following compile time error: cannot convert &x (type *int) to type *_Ctype_int
Any thoughts on how to pass the correct argument?