如何将项插入c_char_p数组

时间:2011-01-14 01:26:48

标签: python ctypes

我想将一个char指针数组传递给C函数。

我指的是http://docs.python.org/library/ctypes.html#arrays

我写下面的代码。

from ctypes import *

names = c_char_p * 4
# A 3 times for loop will be written here.
# The last array will assign to a null pointer.
# So that C function knows where is the end of the array.
names[0] = c_char_p('hello')

我收到以下错误。

  

TypeError:'_ typeype.PyCArrayType'   对象不支持项目   分配

知道如何解决这个问题吗?我想与

交界
c_function(const char** array_of_string);

1 个答案:

答案 0 :(得分:16)

你所做的是创建一个数组类型,而不是一个实际的数组,基本上是这样的:

import ctypes
array_type = ctypes.c_char_p * 4
names = array_type()

然后你可以按照以下方式做点什么:

names[0] = "foo"
names[1] = "bar"

...然后继续使用names数组作为参数调用C函数。