我有一个C函数声明如下:
void getIndexOfState(long *p, long C, long G, long B, long *state);
现在我用Cython包装代码使用从numpy的数组缓冲区语法:
cpdef int getIndexOfState(self, np.ndarray[np.int_t, ndim=1, mode="c"] s):
cdef long out
getIndexOfState(&out, self.C, self.G, self.B, <long*> s.data)
return out
我想用新的memoryview语法,我的问题是,我怎么能使用memoryview时传递指针数据?
我试过了:
cpdef int getIndexOfState(self, long[:] s):
cdef long out
getIndexOfState(&out, self.C, self.G, self.B, s)
return out
其提出的“不能分配型‘长[:]’到‘长*’”错误,当我试图编译模块。 有什么办法可以传递指针而不调用C函数前强迫的memoryview回numpy的阵列?