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];