我有c ++库,其函数从python端调用。其中一个函数获取一个数组的指针,在python一侧的值为[0:255]并定义为
seq1=numpy.array(image,dtype=numpy.uint8).flatten()
seq=numpy.zeros((w*h*3),dtype=numpy.uint8)
函数调用为
myCppFunction(ctypes.c_void_p(seq.ctypes.data),
ctypes.c_void_p(seq1.ctypes.data),
...)
在C ++端,函数定义为
void myCppFunction(ushort *seq, ushort *sequence1, ...)
当我简单地将我在C ++端收到的内容打印为seq,sequence1时,我得到的值远远高于无符号短距离,零序列没有用零填充。 编译很顺利,但实际运行会导致分段错误。 哪里我错了?
答案 0 :(得分:3)
ushort
是2个字节,numpy.uint8
是1个字节。