我试图通过一个多数组(例如3x3)来使用Objective C以矩阵类型的形式打印。
我对这门语言还不太熟悉,因此陷入了困境。我可以传递一个数组,但是对于多个数组,我得到的错误数组类型具有不完整的元素类型。

void printMat(float value[][], int rows, int col)
{
    int j, k;
    float printpt;

    //Handles coloum printing
    for (k=0; k<col; k++)
    {
        NSLog(@"/n");
    //Handles row printing
    for (j=0; j<rows; j++)
    {
        printpt = value[j][k];
        NSLog(@"%f ", printpt);
    }
    }
}

我试图用
printMat(A, n, n)

其中A是浮点数A[30][30],n=30。
实现这一目标或通过多维数组的最佳方法是什么?

最佳答案

将其作为float *value传递,然后适当地将偏移量计算到数组中。value[j*cols+k]
注:data is held in the following order-第一行(全部)、第二行(全部)等)。
value[]不是不完整的,因为它表现为value*
但是,value[][]是不完整的,因为它无法在不知道第二个数组的维数的情况下理解第一个[]数组下标。出于同样的原因,语句value[j][k]没有意义-如果不知道行的大小,如何处理列?
float value[][30]工作正常,但不会帮助您,因为您希望提供可变大小。

关于c - 将Objective C中的多数组传递给函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4227023/

10-11 19:28
查看更多