【发布时间】:2021-04-12 20:46:39
【问题描述】:
我使用python3.8的ctypes来调用C++函数,函数参数是一个数组,它的返回也是一个数组。所以我先创建python列表,然后转换成C++数组调用函数。
ll = ctypes.cdll.LoadLibrary
lib = ll('./ct.so')
nums = [0, 1, 2, 3]
arr = (ctypes.c_int * len(nums))(*nums)
nums2 = lib.method01(arr)
如您所见,nums 是一个 python 列表,我使用 ctypes 将其转换为 C++ 数组,得到arr。然后我通过调用lib.method01(arr) 得到一个C++ 数组nums2。
由于nums2是一个C++数组,所以print(nums2)得到的结果是这样的:__main__.c_int_Array_4,这不是一个python数组。那么有什么办法可以把c++数组转成python数组呢?
谢谢
【问题讨论】:
标签: python c++ arrays numpy ctypes