对我来说,以下所有结果都会导致段错误:
my_array->descr->subarray->shape;
my_array->dimensions;
PyArray_SHAPE(my_array);
PyArray_DIMS(my_array);
PyArray_ITEMSIZE(my_array);
PyArray_NBYTES(my_array);
我的功能如下所示:
static PyObject* exterior(PyObject* self, PyArrayObject* old_simplices_array)
{//code here
我的 cpp 文件的其余部分如下所示:
#include "Python.h"
#include "numpy/arrayobject.h"
/* function */
static PyMethodDef compiled_methods[] =
{
{"_exterior",(PyCFunction)exterior , METH_VARARGS},
{NULL, NULL} /* Sentinel */
};
PyMODINIT_FUNC init_alto(void)
{
(void) Py_InitModule("_alto", compiled_methods);
import_array();
}
将数组传递给“外部”的 python 代码只传递了一个 NxM uint 数组。那部分有效。我可以访问数组的步幅和数据。我只是无法确定迭代的界限。如果这有什么不同,我会在圣人内部工作。
我应该如何在没有段错误的情况下迭代数组?如果答案很明显,请证明你的答案是愚蠢的。
要更好地了解函数的外观,请参见此处。