为了安全地将指针存储在C中,它指向的数据必须在C中分配。
//export Initfunc Init(f string) (C.size_t, *C.double) { size := 10 // allocate the *C.double array p := C.malloc(C.size_t(size) * C.size_t(unsafe.Sizeof(C.double(0)))) // convert the pointer to a go slice so we can index it doubles := (*[1<<30 - 1]C.double)(p)[:size:size] doubles[3] = C.double(1.5) return C.size_t(size), (*C.double)(p)}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)