我正在为NumPy创建一个C扩展。该函数应该返回一个数组,所以我决定使用PyArray_SimpleNew
创建一个尺寸为50x10的PyArrayObject
,然后用一些值填充它。下面是代码:
PyArrayObject *a; npy_intp dims[2];
dims[0] = 50; dims[1] = 10;
a = (PyArrayObject *) PyArray_SimpleNew(2, dims, NPY_DOUBLE);
字符串
然而,在第三行创建数组a时产生了Segmentation Fault。你知道问题是什么吗?
1条答案
按热度按时间mzillmmw1#
我需要在我的init函数中包含
import_array()
,如下所示。我不知道import_array()
做了什么,但解决了这个问题。字符串
PS:如果知道为什么
PyMODINIT_FUNC
中必须调用import_array()
,那就太好了。如果有人知道,请解释。