【发布时间】:2020-03-11 16:47:02
【问题描述】:
使用这段代码,我试图从一个 malloc 的 c 指针创建一个 numpy 数组,灵感来自 blog post from Gaël Varoquaux。
创建数组的行似乎会导致无效的内存访问,因为它会使内核崩溃。我做错了什么?
%%cython -f
from libc.stdlib cimport malloc
import numpy as np
cimport numpy as np
cdef array_from_pointer(double* ptr, int size):
cdef np.npy_intp shape_c[1]
shape_c[0] = <np.npy_intp> size
ndarray = np.PyArray_SimpleNewFromData(1, shape_c, np.NPY_FLOAT64, ptr)
return ndarray
cdef N = 12
cdef double* ptr = <double*> malloc(sizeof(double)*N)
array_from_pointer(ptr, N)
【问题讨论】: