2011-03-25 87 views
0

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

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

但这样做的问题是如何创造瓦尔类的数组(见注释How do I emulate a dynamically sized C structure in Python using ctypes

也许它的东西,我不能ctypes的做我根本不知道,我只是在几个小时内才知道这个模块,任何指针都会被赞赏。

谢谢!

回答

1

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

+0

是的,我在考虑使用ctypes指针作为最后的手段来实现链表,但它对我来说有点令人失望,指针在ctypes中可用,但是例如链表不是。我只是看不到背后的原因。 – zseder 2011-03-25 13:37:02

+0

@zseder,如果我理解正确,链接列表在“ctypes”中不可用的原因是它们在c中不可用!你必须创建你自己的。 – senderle 2011-03-25 13:42:35