同様の問題があると思います:
メモリビューを含む構造体を定義します。
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 が構造体の内部にない場合、この代入は機能します。