cython - 初始化2d c-array

时间:2017-06-05 16:13:03

标签: c arrays cython

我想在cdef函数中创建一个2D数组,其中每个维度中的元素数量取决于传递给函数的参数。例如:

cdef int[:,:] c_volumecheck(int n):

    cdef:
        const int comb = 2**n
        const int nt = n
        int match[comb][nt] 
        size_t i,j

    # initialize values
    for i in range(comb):
        for j in range(n):
            match[i][j] = 0


return match

然而,分配给combnt一个常量表达式似乎不起作用,因为我在行int match[comb][nt]中得到错误“常量表达式中不允许”。手动提供相应的值有效(match[8][3],例如n=3)。但是,这不是一个选项,因为这些值在程序期间会发生变化。

第二件事是,我似乎不明白如何将此数组返回到同一cdef脚本中的另一个def.pyx函数:int[:,:]似乎与我想要初始化的二维数组不对应。

0 个答案:

没有答案