使用变量作为参数将多维数组传递给函数
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);
抱歉,如果这真的很容易解决或者是一个愚蠢的问题,但我最近才开始编程。
所以基本上在 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);