python - ctypes - 将带有指针的结构传递给另一个结构

标签 python c dll ctypes

在我的 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/

相关文章:

python - MySQL存储和搜索文本

python - Flask-SQLAlchemy 单表继承

Python Pandas - 找不到匹配项时返回默认值

c - 从轮廓位置生成边界框

c - 今天刚开始接触C,尝试了解使用fgets、sscanf和fscanf获取值

c++ - QMYSQL驱动加载错误

python - Python 中没有多行 Lambda : Why not?

java - 为什么 while 循环在 java 和 c 中的工作方式不同

dll - 我们可以在一个进程中加载​​ 2 个同名的 DLL

c# - 在带有组合框和文本框的模板列中向上/向下滚动时应用程序崩溃