2011-01-14 23 views
5

Chcę przekazać tablicę wskaźnika znaków do funkcji C.Jak wstawić element do tablicy c_char_p

odsyłam do http://docs.python.org/library/ctypes.html#arrays

piszę następujący kod.

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') 

i pojawia się następujący błąd.

TypeError: '_ctypes.PyCArrayType' object does not support item assignment

Masz pomysł, jak rozwiązać ten problem? Chcę współpracować z

c_function(const char** array_of_string); 

Odpowiedz

12

Co zrobiłeś było stworzenie tablicy typ, a nie rzeczywiste tablicę, więc w zasadzie:

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

Następnie można zrobić coś wzdłuż linii:

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

... i przejdź do wywoływania funkcji C z tablicą names jako parametrem.

Powiązane problemy