我有一个C++类,其中一个方法返回一个double *
数组,就像它的一个成员变量。我试图使它成为Python中的列表。我将它包装在doubleArray_frompointer
中,然后尝试使用deepcopy将其安全地移出,但当doubleArray
超出范围时,仍然存在问题,它的内存已清理完毕,然后C++类尝试清理相同的内存内存(尽管这在我创建的gist中没有显示)。从swig返回double *作为python列表
我怀疑我应该用typemaps来做这件事。
什么,我试图总结是:
double *foo() {
double *toReturn = new double[2];
toReturn[0] = 2;
toReturn[1] = 4;
return toReturn;
}
和接口是:
%module returnList
%include "returnList.h"
%include "cpointer.i"
%pointer_functions(double, doubleP)
%include "carrays.i"
%array_class(double, doubleArray);
%{
#include "returnList.h"
%}
”类型映射通常不是使用SWIG所需的部分。“也许我在这里错过了很明显的东西? – tsbertalan