数组索引上的Cython奇怪行为

时间:2017-08-26 11:11:06

标签: python arrays cython

我正在使用Cython处理一个涉及图像数组和tkinter的简单项目。 我已经简化了使用像双指针一样传递的图像数组的代码。

cdef void cmultiArray(unsigned char** sVideoArray, int currentFrame):
    for x in range (1555200):
        a = sVideoArray[currentFrame][x]
        r = math.floor(x/(960*3)) 
    print ("loop ended")
    return

主叫代码是:

cmultiArray(<unsigned char**> sVideoArray.data, currentFrame)

此代码在第一个循环中崩溃。但是,如果我用这两行替换math.floor行,

t0 = x/(960*3)
r = math.floor(t0)

或者只是不使用math.floor或注释掉数组行,代码工作正常。 如果我将math.floor替换为int,我会得到相同的行为。

似乎只使用带小数部分的函数会对索引本身的操作之前使用的数组索引产生问题。

0 个答案:

没有答案