在我的 C 代码中,我有:
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 结构。
最佳答案
如果您不需要分配或使用 MoreData
结构,那么就 ctypes 而言,md
只是一个通用指针。使用 void *
- 即 c_void_p
。
关于python - ctypes - 将带有指针的结构传递给另一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402745/