Python ctypes 中的指针和数组

2013/4/12 Python

ctypes是Python提供的调用C库的模块,C/C++语言的函数中常常会使用数组和指针作为参数或返回值,Python在处理这类库的时候有一些麻烦,但是是可以实现的。

# 函数中的数组

这里以整形数组为例,代码如下:

int_array = ctypes.c_int * 10
a = char_p_array(1,2,3)

第一句为定义整形数组类型,第二句将a实例化为一个c整形数组,参数为初始化的值,示例没有全部初始化。

# 多级指针的处理

这里以二级指针为例,代码如下:

x = ctypes.c_char_p()
y = ctypes.pointer(x)

第一句定义个char型指针为第一级指针,第二句定义第二级指针。 以此类推可以第一多级指针。

内容的读取:

f = y.contents.value