我试图通过一个多数组(例如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/