Python utiliza ctypes para pasar una matriz char * y rellenar los resultados

Estoy tratando de usar ctypes para crear una matriz char * en python que se pasará a una biblioteca para rellenar con cadenas. Espero 4 cadenas de regreso de no más de 7 caracteres cada una.

Mi código de Py se ve así

testlib.py

from ctypes import *
primesmile = CDLL("/primesmile/lib.so")

getAllNodeNames = primesmile.getAllNodeNames
getAllNodeNames.argtypes = [POINTER(c_char_p)]
results = (c_char_p * 4)(addressof(create_string_buffer(7)))
err = getAllNodeNames(results)

lib.cpp

void getAllNodeNames(char **array){
    DSL_idArray nodes; //this object returns const char * when iterated over
    network.GetAllNodeIds(nodes);
    for(int i = 0; i < (nodes.NumItems()); i++){
    strcpy(array[i],nodes[i]);
    }
}

Sigo obteniendo fallas de segmentación cuando intento ejecutar este código. He creado una prueba de C que funciona perfectamente, pero en Python debo configurar la matriz de punteros de forma incorrecta o algo así. Parece llegar al segundo nodo en el bucle y luego tener un problema, como he visto al escupir datos en la línea de comandos. Cualquier idea sería muy apreciada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta