C++ c++;如何通过用户输入的变量将2D数组传递给函数?

C++ c++;如何通过用户输入的变量将2D数组传递给函数?,c++,multidimensional-array,C++,Multidimensional Array,当我运行下面的代码时,我在函数中得到一个错误 using namespace std; void function(int a[rows][columns]) {} int main() { int rows, columns; cin >> rows >> columns; int matrix[rows][columns]; for (int i = 0; i < rows; i++) { for (int

当我运行下面的代码时,我在函数中得到一个错误

using namespace std;

void function(int a[rows][columns]) {}

int main() {
    int rows, columns;
    cin >> rows >> columns;

    int matrix[rows][columns];
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < columns; j++) {
            cin >> matrix[i][j];
        }
    }

    function(matrix);

    return 0;
}
使用名称空间std;
void函数(inta[行][列]){}
int main(){
int行、列;
cin>>行>>列;
int矩阵[行][列];
对于(int i=0;i>矩阵[i][j];
}
}
函数(矩阵);
返回0;
}
如何将2D数组传递给带有用户输入的变量的函数?

您可以像这样使用
vector

#include <iostream>
#include <vector>

using namespace std;

void function(const vector<vector<int>>& a) {}

int main() {
    int rows, columns;
    cin >> rows >> columns;

    int initial_value = 0;
    std::vector<std::vector<int>> matrix;
    matrix.resize(rows, std::vector<int>(columns, initial_value));

    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < columns; j++) {
            cin >> matrix[i][j];
        }
    }

    function(matrix);

    return 0;
}
#包括
#包括
使用名称空间std;
空函数(常数向量&a){}
int main(){
int行、列;
cin>>行>>列;
int初始值=0;
向量矩阵;
调整大小(行,标准::向量(列,初始值));
对于(int i=0;i>矩阵[i][j];
}
}
函数(矩阵);
返回0;
}

int矩阵[行][列]不是有效的C++,所以你的问题是不现实的。这个“C++代码”虚空函数(int a [行[]列])< />甚至在C中也不起作用,除非<代码>行> />代码>和<代码>列>代码>是全局变量。在C++中,你应该使用<代码>向量< /> >或者更好地定义你自己或在库中找到的对象矩阵。如果您被迫使用C样式数组,请使用
int**a
。。。但是你会有麻烦的