我试图通过c Api从c ++调用python来获取c ++中两个numpy Arrays的值.我第一次调用我的程序callPython()时,一切似乎运行正常,但第二次调用导致SIGSEGV
pModule = PyImport_Import(pName);
Run Code Online (Sandbox Code Playgroud)
被执行.
在flebool的答案中,有一个比我更简单的最小示例代码,具有相同的错误.
minimal.cpp
#include <Python.h>
#include <numpy/arrayobject.h>
long int geTuple( PyObject *pValue , PyObject *objI , int i)
{
objI = PyTuple_GetItem(pValue, i);
long int n,M;
double *xJ;
if (objI != NULL)
{
n = PyArray_NDIM(objI);
printf("PyArray_NDIM(objI): %ld\n" , n );
M = *PyArray_DIMS(objI);
printf("PyArray_DIMS(objI) : %ld\n" , M );
for (int k = 0; k < M; k++)
{
xJ = (double *) PyArray_GETPTR1(objI, k );
printf("xJ : %f\n" …Run Code Online (Sandbox Code Playgroud)