Как вставить элемент в массив c_char_p

Я хочу передать массив указателя 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: объект _ctypes.PyCArrayType не поддерживает назначение элемента

Любая идея, как я могу это решить? Я хочу взаимодействовать с

 c_function(const char** array_of_string); 

То, что вы сделали, это создать тип массива, а не фактический массив, поэтому в основном:

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

Затем вы можете сделать что-то вроде:

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

… и переходим к вызову вашей функции C с помощью массива names качестве параметра.