0

我想我有一个类似的问题:

我定义了一个包含内存视图的结构:

ctypedef double[:] vector
ctypedef double[:,::1] matrix

ctypedef struct my_struct:
    matrix A
    vector b

现在我初始化这样一个结构:

cdef my_struct *instance = <my_struct*>malloc(sizeof(my_struct))
instance.A = 2*np.eye(3, dtype='double')
instance.b = np.zeros((3,), dtype='double')

print(matmul(instance.A, instance.B))

现在忽略matmul(它是一个经过良好测试的 cython 函数来计算矩阵乘法)。我得到的错误是instance.A = ...分配行的 SIGSEGV (11)。似乎它应该工作(qua类型)。事实上,如果 A 不在结构内,则此分配将起作用。

4

0 回答 0