将多维数组传递给function_111

问题描述 投票:0回答:1
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所以他们可以将数组传递给函数。问题是如果在输入之前我不知道它的大小,我如何将多维数组传递给函数。

c++ function multidimensional-array
1个回答
1
投票
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,因为它是你对数组大小的唯一指示。

© www.soinside.com 2019 - 2024. All rights reserved.