使用ctypes从python到c ++的数据传输

时间:2013-01-24 21:03:06

标签: c++ python numpy ctypes

我有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时,我得到的值远远高于无符号短距离,零序列没有用零填充。 编译很顺利,但实际运行会导致分段错误。 哪里我错了?

1 个答案:

答案 0 :(得分:3)

ushort是2个字节,numpy.uint8是1个字节。