如果我有以下兩組代碼,我該如何將它們粘合在一起?如何使用ctypes將Python列表轉換爲C數組?
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)
我怎樣才能調用與x中的元素連續列表的c_function?我試圖將x轉換爲c_void_p,但那不起作用。
我也嘗試過使用類似
x = c_void_p * 10
for e in y:
x[i] = e
但得到一個語法錯誤。
C代碼顯然需要數組的地址。我如何得到這個發生?
「* pyarr」in python ...這是什麼意思? – AaronYC 2012-12-21 08:34:56
@AaronYC我很抱歉的混淆; 'pyarr'是一個普通的python列表,比如'pyar = [1,2,3,4]'。如果你想知道名稱之前的明星,請檢查:http://stackoverflow.com/questions/400739/what-does-mean-in-python – 2012-12-22 05:07:03
非常感謝...你給的鏈接是我需要什麼...... – AaronYC 2012-12-24 03:17:49