我想将一个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);
答案 0 :(得分:16)
你所做的是创建一个数组类型,而不是一个实际的数组,基本上是这样的:
import ctypes
array_type = ctypes.c_char_p * 4
names = array_type()
然后你可以按照以下方式做点什么:
names[0] = "foo"
names[1] = "bar"
...然后继续使用names
数组作为参数调用C函数。