Struct cython结构内部的memoview。。。如何分配给他们?(SIGSEGV)

Struct cython结构内部的memoview。。。如何分配给他们?(SIGSEGV),struct,cython,segmentation-fault,memoryview,Struct,Cython,Segmentation Fault,Memoryview,我想我也有类似的问题: 我定义了一个包含MemoryView的结构: 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 =

我想我也有类似的问题:

我定义了一个包含MemoryView的结构:

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))
cdef my_struct*instance=malloc(sizeof(my_struct))
instance.A=2*np.eye(3,dtype='double')
instance.b=np.zero((3,),dtype='double')
打印(matmul(实例A、实例B))

暂时忽略
matmul
(这是一个经过良好测试的计算矩阵乘法的cython函数)。我得到的错误是
instance.a=…
赋值行上的SIGSEGV(11)。它似乎应该起作用(作为类型)。事实上,如果A不在结构中,此赋值将起作用。

副本中答案的可能副本正确识别问题。我不会使用他们的工作区(它最终会泄漏内存),相反,我只会接受这是不可行的。