在我的C代码,我有:ctypes的 - 通过一个结构的指针另一个结构
typedef struct{
int info1;
int info2;
MoreData* md;
} BasicData;
typedef struct{
int extinfo[100];
char stuff[100];
} MoreData;
现在我有一个C库函数,它接受BasicData作为参数,我想从Python中调用它。 要做到这一点,我构建一个ctypes类:
class BasicData(Structure):
_fields_ = [("info1", c_int),
("info2", c_int),
("md", ??????)]
我的问题是我该怎么填进????空间能够将这个结构传递给C函数(或者我需要完全不同的东西?)。 MoreData仅用于计算,我不需要在Python代码中读取它,因此为它分配内存将从C库级别处理。我只需要传递正确的指针类型的BasicData结构。
我读的问题是'BasicData'结构由ctypes分配并传递给一个函数。在那种情况下,它至少需要一个'c_void_p'。如果确实定义了'MoreData'结构,那么该字段将是'(“md”,POINTER(MoreData))'。 – eryksun
同意,取决于是否有任何C代码访问'md' – vbraun