我有C代码,我目前使用Cython将其整合到Python中。 C代码处理指针格式指针中的2D数组,即为3x3数组分配内存如下:
float **A = (float **)malloc(3*sizeof(float *));
for (i=0; i<3; i++) A[i] = (float *)malloc(3*sizeof(float));
我正在关注Cython Github wiki中的这个tutorial。请注意,它们以线性方式存储2D数组。
我的问题是,更改Cython代码(特别是Numpy数组的处理)的最有效方法是什么,以便它可以用于函数void c_multiply (float** array, float multiplier, int m, int n)
说(即现在处理指针的指针)阵列)。
注意我目前正在通过在C代码中初始调用两个转换函数来处理它,最后将索引从线性更改为指针指向反向指针,反之亦然。但是,理想情况下我不想更改C代码。