我有C代碼,它使用變量data
,這是一個用malloc創建的可變大小的大型二維數組。現在我必須編寫一個接口,以便可以在Python中調用C函數。我使用ctypes。訪問一個變量的變量被鑄造成int數組的指針python
C代碼:
FOO* pytrain(float **data){
FOO *foo = foo_autoTrain((float (*)[])data);
return foo;
}
與
FOO *foo_autoTrain(float data[nrows][ncols]) {...}
Python代碼:
autofoo=cdll.LoadLibrary("./libfoo.so")
... data gets filled ...
foo = autofoo.pytrain(pointer(pointer(p_data)))
我的問題是,當我嘗試訪問data
在foo_autoTrain我只得到0.0
或其他隨機值和稍後的seg故障。那麼我怎麼能通過float (*)[])data
到Python的foo_autoTrain?
請不要猶豫,指出,如果我描述了我的問題的一些部分不夠。