我想从python中的c ++库获取数组的指针并将其保存在变量中,然后将该变量用作另一个c ++函数的参数。
ubuntu18.04,pybind11,python3.6.8
ctypes
passing-pointer-to-c-from-python-using-pybind11
C ++
// class1:
static complex<double>* randomComplexArray(long size);
complex<double>* randomComplexArray(long n){
complex<double>* res = new complex<double>[n];
for ...
return res; //pointer
}
// class2:
void calc(complex<double>* vals);
pybuind11
// class1:
.def_static("randomComplexArray", &class1::randomCircleArray)
// class2:
.def("calc", (void (*)(complex<double>*)) &class2::calc)
python
p = randomComplexArray(1024)
calc(p) // what I hope
Segmentation fault
,Bus fault
等。
我是第一次做这件事。如果有人可以帮助我?
非常感谢!