使用变量作为参数将多维数组传递给函数

Passing multidimensional array to a function using a variable as a parameter

抱歉,如果这真的很容易解决或者是一个愚蠢的问题,但我最近才开始编程。

所以基本上在 void main() 中我声明了一个二维数组,如下所示:

void main()
{
  const int grid = 5;
  array[grid][grid];
{

但是我想将其传递给这样的函数:

void drawGrid(int grid, bool array[][])
{

}

这会产生一个错误,因为第二个参数需要有一个数字。但这是一个问题,因为在 main 中我使用 variable.

声明了我的数组
void drawGrid(int grid, bool array[grid][grid])
{

}

在参数中放置变量不起作用。

如何在参数内部使用 int 变量 grid 时将数组传递给此函数。

我进行了很多搜索,并查看了与我有类似问题的人的答案,但我似乎无法弄清楚具体要做什么。谁能告诉我如何解决这个问题,我将非常感激,因为我已经尝试解决这个问题将近两个小时了。谢谢

您可以使用将大小作为模板参数的函数模板。

template <size_t grid>
void drawGrid(bool array[][grid])
{    
}

并简单地调用它:

drawGrid(array);

drawGrid<grid>(array);