我本来想跟着procedure来的,但我被卡住了。我试图从我的C++代码中传递一个^ {CD1}}(包在{{CD2}})到Python。这就是我所拥有的:
extern 'C' {
double* returnQ() {
std::vector<double> v = {7.5, 5.5, 16.5, 8.5};
std::cout<<"Print first element:"<<vec[0]<<std::endl;
return v.data(); }
}
这是我的python代码。通过ctypes
作为lib
加载库后,我有:
然而,当我在Python中调用q()
时,我得到一个随机数数组。我不知道为什么?在
如注释中所述,向量是一个局部变量,在函数返回后被销毁。一种有效的方法是让Python管理内存并将数据复制到内存中。在
测试.cpp
用法:
^{pr2}$相关问题 更多 >
编程相关推荐