用数组定义结构

2024-09-23 20:19:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我通常使用numpy数组,因此在Python中定义了以下ctypes类型

arr_double = numpy.ctypeslib.ndpointer(dtype=np.double, flags='C_CONTIGUOUS')

我在C中有如下结构

struct mystruct {
    double *array;
    size_t size;
};

我尝试在Python中使用ctypes定义这个结构,如下所示

class MyStruct(ctypes.Structure):
    _fields_ = [("array", arr_double), ("size", ctypes.c_size_t)]

但是,这给了我一个错误

second item in _fields_ tuple (index 2) must be a C type

在ctypes中定义这个结构的正确方法是什么?有没有办法使用numpy的ctypes类型?如果不是,我如何将numpy数组转换为“C类型”?你知道吗


Tags: numpy类型fieldssize定义np数组ctypes