Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将多维数组传递给函数_111_C++_Function_Multidimensional Array - Fatal编程技术网

C++ 将多维数组传递给函数_111

C++ 将多维数组传递给函数_111,c++,function,multidimensional-array,C++,Function,Multidimensional Array,我见过有人把一些const int放入函数中,这样他们就可以将数组传递给函数。问题是,如果在输入多维数组之前我不知道它的大小,如何将它传递给函数 do_something(int array[][]) { } int main() { int array_length; cin>> array_length; int array[array_length][array_length]; for() { "putting el

我见过有人把一些
const int
放入函数中,这样他们就可以将数组传递给函数。问题是,如果在输入多维数组之前我不知道它的大小,如何将它传递给函数

do_something(int array[][])
{

}

int main()
{
    int array_length;
    cin>> array_length;
    int array[array_length][array_length];
    for()
    {
        "putting elements of array"
    }
}
这一行不会编译。与其他一些语言(可能是Java)不同,分配一个动态大小的数组不同于一个恒定大小的数组。
[]
表示法将创建一个恒定大小的数组,这将不适用于您尝试传递它的
数组\u长度
。要动态分配此数组,请使用

int array[array_length][array_length];
您需要遍历
数组
,并使用

int **array = new int*[array_length];

在此之后,您需要在迭代
数组
时参考
数组_length
,因为这是关于数组大小的唯一指示。

对于动态数组,请避免使用标准数组。使用<代码> STD::向量< /代码>,使你的生活更简单。什么是<代码>函数111 < /代码>?C++没有可变长度数组。您的声明
int数组[array_length][array_length]无效。可能是@1201programalam的重复,它没有解释如何传递行大小可变的数组。哎哟,这就是我快速工作得到的结果。是的,vectors很好地完成了这一点,但我认为他最好先了解分配的真正作用,然后再使用这些优秀的工具。
array[i] = new int[array_length];