Как вставить элемент в массив 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);
1 ответов
то, что вы сделали, это создать массив тип, а не фактический массив, поэтому в основном:
import ctypes
array_type = ctypes.c_char_p * 4
names = array_type()
затем вы можете сделать что-то вроде:
names[0] = "foo"
names[1] = "bar"
...и перейдите к вызову функции C с помощью names
массив в качестве параметра.