Python usando ctypes para passar uma matriz char * e preencher os resultados

Eu estou tentando usar ctypes para criar um array char * em python para ser passado para uma biblioteca para preencher com seqüências de caracteres. Eu estou esperando 4 cordas de volta não mais que 7 caracteres de comprimento cada.

Meu código py se parece com isso

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]);
    }
}

Eu continuo recebendo falhas de segmentação quando tento executar este código. Eu criei um teste do C que funciona perfeitamente, mas em Python eu devo estar configurando o array de ponteiros incorretamente ou algo assim. Parece chegar ao segundo nó no loop e, em seguida, ter um problema como eu vi de cuspir dados na linha de comando. Qualquer insight seria muito apreciado.

questionAnswers(3)

yourAnswerToTheQuestion