Se ho i 2 insiemi di codice seguenti, come posso incollarli insieme?Come si converte una lista Python in un array C usando i ctypes?
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)
Come posso chiamare la funzione c con un elenco contiguo di elementi in x? Ho provato a trasmettere x a un c_void_p, ma non ha funzionato.
Ho anche cercato di usare qualcosa come
x = c_void_p * 10
for e in y:
x[i] = e
ma questo diventa un errore di sintassi.
Il codice C desidera chiaramente l'indirizzo di un array. Come faccio a ottenere questo?
" * pyarr "in python ... Che cosa significa? – AaronYC
@AaronYC Mi dispiace per la confusione; 'pyarr' è una normale lista di python, come' pyar = [1,2,3,4] '. Se ti stai chiedendo la stella prima del nome, guarda questo: http://stackoverflow.com/questions/400739/what-does-mean-in-python –
Grazie mille ... Il link che hai dato è quello di cui avevo bisogno ... – AaronYC