有没有一种方法可以输入二维数组而无需事先声明大小?

时间:2019-09-04 03:25:51

标签: c++

我试图在不事先声明大小的情况下输入2d数组。

我已经尝试过的一个正在使用malloc和calloc,但是需要使用指针才能工作。

void Sum(int arr[][6]) { for(i=1;i<5;i++) for(j=1;j<5;j++)}

void Sum(int arr [] []),一种使用此函数进行delcare的方法。 注意:假设矩阵是方矩阵。

1 个答案:

答案 0 :(得分:0)

不幸的是你不能。但是,您可以将1D数组用作2D数组,例如

int sum(int* arr, int width, int height)
{
  int total = 0;
  for(int y = 0; y < width; y++)
  {
    for(int x = 0; x < height; x++)
    {
      total += arr[x + y * width];
    }
  }
  return total;
}

这也适用于3D阵列,只需使用arr[x + y * width + z * width * height]