do_something(int array[][])
{
}
int main()
{
int array_length;
cin>> array_length;
int array[array_length][array_length];
for()
{
"putting elements of array"
}
}
我见过人们放一些const int
所以他们可以将数组传递给函数。问题是如果在输入之前我不知道它的大小,我如何将多维数组传递给函数。
int array[array_length][array_length];
这行不会编译。与其他一些语言(可能是Java)不同,分配动态大小的数组不同于常量大小的数组。 []
符号将创建一个恒定大小的数组,这将无法尝试传递它array_length
。要动态分配此数组,请使用
int **array = new int*[array_length];
您将需要遍历array
并使用分配每个子数组到正确的大小
array[i] = new int[array_length];
在此之后,你需要在迭代array_length
时引用array
,因为它是你对数组大小的唯一指示。