0
ベクトルduring a recursion to
push_back`クラスからのいくつかのインスタンスですが、残念ながらセグメンテーションフォルトが発生します。ここ再帰中のcython libcpp.vectorセグメンテーションフォールト
は、このエラーが同様に発生した簡易版です:ノー持っ
PYXファイル
from libcpp.vector cimport vector
from cython.operator cimport dereference as deref, preincrement as inc
cdef class Grid:
cdef unsigned int srow
cdef unsigned int erow
cdef unsigned int scol
cdef unsigned int ecol
def __init__(self, unsigned int srow, unsigned int erow, unsigned int scol,
unsigned int ecol):
self.srow = srow
self.erow = erow
self.scol = scol
self.ecol = ecol
cdef simple_function_c(vector[Grid] &vp , unsigned int counter):
cdef Grid p
if counter == 10:
return
p = Grid(counter-1, counter, counter-1 , counter+1)
vp.push_back(p)
counter += 1
simple_function_c(vp, counter)
def simple_function():
cdef vector[Grid] vp
cdef unsigned int counter
cdef Grid tp
counter = 0
simple_function_c(vp, counter)
print vp.size() #this works and outputs 10
cdef vector[Grid].iterator it = vp.begin()
while it != vp.end():
tp = deref(it) #Seg FAUL !!!
print tp.srow, tp.erow, tp.scol, tp.ecol
inc(it)
PYファイル
from testrec import simple_function
simple_function()
setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(ext_modules=[Extension(
"testrec",
["testrec.pyx"],
language="c++")],
cmdclass={'build_ext': build_ext})
アイティーアイなぜアイティーアイsが起こっている。