4
目前我正在將我的python代碼中的性能瓶頸轉移到c,以調查性能影響。該代碼將運行一個模擬,並通過ctypes將結果報告給python。但是,我有問題讓我的類型正確匹配。使用ctypes轉換整型數組
雖然我正在尋求解決這個問題,但我也在尋找更多關於使用ctypes的一般建議,因爲文檔和過程似乎有點薄。
我有下面的C函數:
extern "C" {
void f(int* array, int arraylen) {
for(int i = 0; i < arraylen; i++) {
array[i] = g() // mutate the value array[i];
}
}
}
而在蟒蛇下面的代碼:
Traceback (most recent call last):
File "particle.py", line 9, in <module>
_f(buffer, seqlen)
ctypes.ArgumentError: argument 1: <type 'exceptions.TypeError'>: expected LP_c_int instance instead of _ctypes.ArrayType
感謝馬克,你的片段,就足以讓我找出了什麼問題,我省略了來自我的數組實例的括號,它引發了類型不匹配。 – 2009-08-25 01:04:42