Python ctypes 数组

0 投票
1 回答
2170 浏览
提问于 2025-04-16 14:24

我想在ctypes中创建一个包含可变长度数组的数组。我知道外层数组的大小,也知道所有内层数组的大小。

我在这里找到一个有趣的讨论:

如何在Python中使用ctypes模拟动态大小的C结构

但问题在于,如何创建一个Var类的数组(可以查看评论 如何在Python中使用ctypes模拟动态大小的C结构

也许这根本是我无法用ctypes做到的,我也不太清楚,我只是刚接触这个模块几个小时,任何指点都很感激。

谢谢!

1 个回答

1

在ctypes中,动态大小的数据结构处理方式和C语言是一样的;你需要使用指针来处理动态数据。可惜的是,这里没有什么捷径可走。ctypes的文档里有比较详细的说明,教你怎么处理指向动态数据的指针(比如把指针当作一个大小不固定的数组来用)。不过一开始可能会有点难理解。个人来说,我发现创建几个小的测试程序对验证我使用ctypes和动态数据的方式很有帮助。虽然可能需要一些时间和思考,但这个接口相当灵活,所以我相信你能用ctypes实现你的目标。

撰写回答