1

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

4

1 回答 1

3

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

于 2013-01-24T21:13:13.523 回答