Как вставить элемент в массив 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); 

One Solution collect form web for “Как вставить элемент в массив c_char_p”

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

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

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

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

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

  • Python: WindowsError: исключение: чтение нарушения доступа 0x00000000
  • ctypes в размере python с помощью метода `sys.getsizeof (Var)` против `ctypes.sizeof (Var)`
  • Различия в ctypes между Python 2 и 3
  • python ctypes и sysctl
  • Можно ли явно закрыть CDLL ctypes?
  • Любопытный segfault при использовании объединения Python CTypes с 4 структурами, но не менее
  • Как устранить ошибку сегментации при работе с Python Ctypes и C ++?
  • Лучший способ создать класс «generic», наследующий внешние классы модулей
  • Python - лучший язык программирования в мире.