如何使用Python和ctypes处理指针的指针

时间:2013-09-13 23:31:24

标签: python c ctypes

我正在尝试对我正在包装的库中找到的结构进行建模,其中结构有一个像这样的指针指针:

typedef struct item_t {
  char* name;
}

typedef struct container_t {
  item_t **items;
}

在使用Python ctypes模块的Structure类进行建模时,如何表示具有可变长度的指针数组?

1 个答案:

答案 0 :(得分:1)

您可以使用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))),
    ]