1. 程式人生 > >Python Ctypes 多級指標 傳引數 和返回值

Python Ctypes 多級指標 傳引數 和返回值

    最近在搞神經網路框架這塊,由於框架是用C++寫的但是後續的操作不想再用C++寫(主要C++寫的頭疼)所以準備將後面的工作轉入python中寫這裡涉及到利用Python 和Ctypes 來實現python呼叫C++的介面。

    由於用到很多陣列我這裡全都是標誌著指標的如果是二維就是
double ** arry 三維就是 double *** arry所以肯定是要涉及到多級指標的傳入和返回問題接下來進入正題:
首先是C++那邊如果返回是一個(以三級指標為例)三級指標python這邊要接受寫法:
work.Test.restype = POINTER(POINTER(POINTER(c_int)))
    先宣告這個C++的方法要返回的型別是一個三級指標,這裡的POINTER這個就是代表括號裡的指標(具體的可以自己翻閱文件)。
nums = work.Test(2);
    然後就可以直接呼叫就能夠返回一個(int型別的)三級指標。其實就是三維陣列。