tengo una función C, que espera una lista de \ 0 Series terminadas como entrada:pasar una lista de cadenas a partir de pitón/ctypes a la función C esperando char **
void external_C(int length , const char ** string_list) {
// Inspect the content of string_list - but not modify it.
}
De pitón (con ctypes) I le gustaría llamar a esta función en base a una lista de cadenas de Python:
def call_c(string_list):
lib.external_C(??)
call_c(["String1" , "String2" , "The last string"])
Algún consejo sobre cómo construir la estructura de datos en el lado pitón? Observe que garantizo que la función C NO alterará el contenido de las cadenas en string_list.
Saludos
Joakim
¿Cómo sabe la función C que ha llegado al final de la secuencia de 'const char *'? – habnabit
Bueno; en general, no sabe, por supuesto. Mi intención era terminarlo con un NULL, alternativamente puedo pasar una longitud igual que el puntero (char **) - tengo control total sobre la biblioteca C en cuestión. Joakim –
Si no lo sabe, es bastante inútil. Necesitas contarlo de alguna manera y decirnos * para que podamos darte un código que funcione. – habnabit