c – 如何将未知大小的二维数组传递给函数

我想创建类库,一个函数,其参数是一个未知大小的矩阵,用户将创建自己的矩阵,并使用自己的大小并将其传递给此函数,对其矩阵进行一些操作,如下所示,将是功能

calculateDeterminantOfTheMatrix( int matrix[][])
{
   some Operations to do on matrix 
}
最佳答案
C和C的内置组件不能很好地支持多维数组.只有在编译时知道N-1维度时,才能传递N维数组:

calculateDeterminantOfTheMatrix( int matrix[][123])

但是,标准库提供了std :: vector容器,它对多维数组很有效:在你的例子中,传递vector< vector< int> > & matrix将是处理C中任务的正确方法.

int calculateDeterminantOfTheMatrix(vector<vector<int> > &matrix) {
    int res = 0;
    for (int i = 0 ; i != matrix.size() ; i++)
        for(int j = 0 ; j != matrix[i].size() ; j++)
            res += matrix[i][j];
    return res;
}

作为额外的好处,您不需要将矩阵的维度传递给函数:matrix.size()表示第一维,矩阵[0] .size()表示第二维.

转载注明原文:c – 如何将未知大小的二维数组传递给函数 - 代码日志