【问题标题】:python ctypes arrayspython ctypes 数组
【发布时间】:2026-02-01 05:55:01
【问题描述】:

我想在 ctypes 中有一个可变长度数组的数组。我也知道外部数组和所有内部数组的大小。

我在这里发现了一个有趣的话题: How do I emulate a dynamically sized C structure in Python using ctypes

但是这个问题是如何创建一个 Var 类的数组(见评论How do I emulate a dynamically sized C structure in Python using ctypes

也许这是我完全不能用 ctypes 做的事情,我真的不知道,我只了解这个模块几个小时,任何指针都表示赞赏。

谢谢!

【问题讨论】:

    标签: python arrays pointers ctypes


    【解决方案1】:

    动态大小的数据结构在 ctypes 中的处理方式与在 C 中的处理方式相同;您使用指向动态数据的指针。不幸的是,这没有捷径可走。 ctypes 文档包含有关如何处理指向动态数据的指针的相当详细的描述(例如将指针用作任意大小的数组)。虽然一开始可能有点难以掌握。就个人而言,我发现创建一些小型测试应用程序有助于验证我对 ctypes 和动态数据的使用。这可能需要一些时间和一些令人头疼的问题,但界面非常灵活,所以我希望您能够使用 ctypes 实现您的目标。

    【讨论】:

    • 是的,我正在考虑使用 ctypes 指针作为最后的手段来实现链表,但对我来说有点失望,指针在 ctypes 中可用,但例如链表不可用。我只是不明白背后的原因。
    • @zseder,如果我理解正确,链接列表在 ctypes 中不可用的原因是它们在 c 中不“可用”!您必须创建自己的。