【发布时间】:2016-02-17 17:15:14
【问题描述】:
我正在生成 3 个 nxn 大小的幻方(其中 n 是 3 到 15 之间的奇数),并希望将它们存储的二维数组传递给此函数:
void printSquare(int n, int square[n][n], int b){
cout << "Magic Square #" << b << " is:\n";
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
printf("%3d ", square[i][j]);
printf("\n");
}
}
数组像这样传递给函数:
printSquare(n, magicSquare, 1);
但是,无论我如何尝试更改它以使函数接受具有未定义大小的二维数组,我都会不断收到诸如“候选函数不可行:没有已知转换”之类的错误 从 'int [n][n]' 到 'int (*)[n]' for 2nd argument"。我该如何解决这个问题,以便我可以在我的函数中使用二维数组?
【问题讨论】:
-
将语言更改为 C?这是一个选择吗?
-
你是如何生成它们的?如果您使用的是
int**,为什么不让您的函数使用它? -
你真丢脸。 google.com/… 选择一个副本并关闭问题。
标签: c++ arrays multidimensional-array