我正在尝试对在我包装的库中找到的结构进行建模,其中结构有一个指向指针的指针,如下所示:
typedef struct item_t {
char* name;
}
typedef struct container_t {
item_t **items;
}
ctypes
在使用 Python 的模块类进行建模时Structure
,我如何表示一个可变长度的指针数组?
您可以使用POINTER
并转换item_t **
为POINTER(POINTER(item_t))
:
from ctypes import *
class item_t(Structure):
_fields_ = [
('name', c_char_p),
]
class container_t(Structure):
_fields_ = [
('items', POINTER(POINTER(item_t))),
]