C++ 在';]之前在函数体外部使用参数时出错';

C++ 在';]之前在函数体外部使用参数时出错';,c++,function,multidimensional-array,C++,Function,Multidimensional Array,我是新来的。我为我的失踪感到抱歉。当我调用print_数组函数时,它给出了一个错误。我不明白为什么会这样。你能帮帮我吗 谢谢你的回答 #include <iostream> using namespace std; void print_array(int n,int m,int matrix[][m]){ for(int i=0;i<n;i++) { for(int j=0;j<m;j++) {

我是新来的。我为我的失踪感到抱歉。当我调用print_数组函数时,它给出了一个错误。我不明白为什么会这样。你能帮帮我吗

谢谢你的回答

#include <iostream>
using namespace std;

void print_array(int n,int m,int matrix[][m]){
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cout << matrix[i][j];
        }
        cout << "\n";
    }
    cout << "\n";
}

int main() {
    int m,n;
    while (true){
        cout << "Given row size: " ;
        cin >> n ;
        cout << "Given column size: ";
        cin >> m;
        if (m>=5 && n>=5){
            break;
        }
        else{
            cout <<"Row and Column size must be grater than 5. Please try again"<<endl;
            continue;
        }
    }
    int array_A[n][m];

    cout <<"Enter elements by giving a space between them\n"<<endl;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cin >> array_A[i][j];
        }
    }
    cout << "\n";
    print_array(n,m,array_A);
    return 0;
}
#包括
使用名称空间std;
无效打印_数组(int n,int m,int矩阵[][m]){

对于(int i=0;i)我认为您对数组分配的理解有点错误。在C++中,不能像在<代码> int数组】[n] [m ]那样动态地为数组分配内存。
。您必须使用关键字
new
手动分配内存,或者使用一个为您分配内存的容器,如
std::vector
。既然您要开始,我就使用标准库容器


您可以使用类似于
std::vector数组的东西初始化变量(n,std::vector(m,0))<代码>包含了<>代码>之后,你可以简单地使用你的变量,并将它作为函数的参数传递。

我认为你对数组分配的理解有点不对。在C++中,你不能像在<代码> int数组中[1] [n] [M]那样动态地为数组分配内存。
。您必须使用关键字
new
手动分配内存,或者使用一个为您分配内存的容器,如
std::vector
。既然您要开始,我就使用标准库容器


您可以使用类似于
std::vector数组的东西初始化变量(n,std::vector(m,0))<代码>包含了<代码> >之后,可以简单地使用变量,并将其作为函数的参数传递。< /P>可变长度数组不是标准C++。您使用哪一个编译器?我使用CHILIN 2020.2.4编译器,它是编译器的明文。我想您使用的是G+ + VALA的一些版本。BLE长度数组不是标准C++。你使用哪一个编译器?我使用CHILL2020.2.4编译器,它是编译器,我想你是在使用G+的一些版本。