我希望尽可能少地复制,快速填充一个我正在从C逐步接收的长结构体数组。
如果我的结构体只包含基本数据类型,例如以下内容:
cdef packed struct oh_hi:
int lucky
char unlucky
然后以下内容能正常工作:
DEF MAXPOWER = 1000000
cdef oh_hi * hi2u = <oh_hi *>malloc(sizeof(oh_hi)*MAXPOWER)
cdef oh_hi [:] hi2me = <oh_hi[:MAXPOWER]> hi2u
但是一旦我将我的结构体改为保存字符数组:
cdef packed struct oh_hi:
int lucky
char unlucky[10]
之前的memoryview转换代码编译通过,但在运行时出现了错误:
ValueError: Expected 1 dimension(s), got 1
有没有在Cython中简单的方法来完成这个任务?我知道我可以创建一个结构化数组,但是据我所知,那样做不能让我直接将C结构体赋值给它。