可以在cython
中的结构内声明内存视图我在一个结构中定义了一个内存视图,只要我将一个现有视图分配给它,然后尝试访问它,它会给我的seg错误。 这是有问题的代码:
cdef struct StackRecord:
int dataLen
Node *tree_node
int[::1,:] idx_data
这是一个带有概率的函数
cdef buildTree(int[::1,:] ids_data.....) nogil:
with gil:
print ids_data[1,0] #prints the data correctly
cdef stack[StackRecord *] mystack #stack for storing ptr to stackrecord
cdef StackRecord *stack_rec #stackRecord pointer to be pushed
stack_rec.idx_data=ids_data #line wihth prob iff commented following print work fine else gives segfault
aho=ids_data
with gil:
print ids_data[1,0]
print aho[1,0]
mystack.push(stack_rec)
while loop for tree building:#crashes before this
我是cython的新手。无法理解可能是什么问题。这里使用的堆栈是 c ++库函数。