python 调用c++程序, c++程序如何返回数组给python

比如python调用一个c++程序,c++程序里定义一个数组floatx[5]={1,2,3,4,5},最后要把这个数组返回到python,要怎么做呢?目前找到的例子都是... 比如python调用一个c++程序,c++程序里定义一个数组float x[5] = {1,2,3,4,5},最后要把这个数组返回到python,要怎么做呢?
目前找到的例子都是把cpp文件编译成.so文件,然后在python里用ctypes调用。试了一下发现如果c++返回一个值,是可以的。但不知道要怎么返回数组。
先谢过各位大神了!!!
展开
 我来答
大话残剑
2017-03-25 · TA获得超过2217个赞
知道大有可为答主
回答量:1137
采纳率:56%
帮助的人:711万
展开全部
C/C++不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。
一般有两种方法来返回一个数组。
第一种方法:
返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组
第二种方法:
如果你不喜欢用指针的形式返回数组,那么可以采用返回一个结构的形式。这种形式相对较安全,可以避免忘记释放指针而造成内存泄露,也可以避免访问悬挂指针造成的错误。但缺点是由于结构是先拷贝再返回,因此如果结构较大时,会影响效率和占用较大内存。
这是C的限制,Python调用C也是这种情况
匿名用户
2017-03-29
展开全部
你说的调用是指什么,单纯拿标准输出的结果?
那你得吧数据以一些格式当成字符串输出,然后再用python解析字符串还原成你需要的格式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式