最近在搞神经网络框架这块,由于框架是用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类型的)三级指针。其实就是三维数组。