Wie konvertiere ich eine Python-Liste in ein C-Array mit Ctypes?

Wenn ich die Folgen 2 Sätze von code, wie kann ich die zusammenkleben?

void
c_function(void *ptr) {
    int i;

    for (i = 0; i < 10; i++) {
        printf("%p", ptr[i]);
    }

    return;
}


def python_routine(y):
    x = []
    for e in y:
        x.append(e)

Wie kann ich rufen Sie die c_function mit einer zusammenhängenden Liste von Elementen in x? Ich habe versucht, den cast von x zu einem c_void_p, aber das hat nicht funktioniert.

Ich habe auch versucht, etwas zu verwenden, wie

x = c_void_p * 10 
for e in y:
    x[i] = e

aber dieser bekommt einen syntax-Fehler.

Den C-code klar will die Adresse eines Arrays. Wie bekomme ich diese zu passieren?

InformationsquelleAutor der Frage No One in Particular | 2010-11-10

Schreibe einen Kommentar