random.h|11|error: expected ',' or '...' before 'arr'|
除此之外,这是我最大的问题。
我可以在我的main函数中执行此操作,但我想通过调用一个函数来完成它,该函数将初始化我给它的任何2D数组。然后我有另一个打印数组的函数,但它们或多或少是相同的东西,除了语句。 我是一个完全的初学者,所以请随意笑几声!
void InitializeArray2D(int& arr[int x][int y])
{
for (int i=0; i<x; i++)
{
for(int j=0; j<y; j++)
{
cout<<"arr["<<i<<"]["<<j<<"]=";
cin>>arr[i][j];
}
}
}
答案 0 :(得分:1)
实际上
int& arr[x][y]
(我删除了x和y的语法错误类型说明符)是指向引用数组的指针的声明。 C ++不允许声明引用数组。
正确的声明将是
void InitializeArray2D(int ( & arr )[x][y]);
前提是x和y定义为常数。
答案 1 :(得分:0)
撇开,你的功能原型非常糟糕。
你会想要更像的东西:
void InitializeArray2D(int &arr[][], int x, int y) {
}
或
void InitializeArray2D(int **arr, int x, int y) {
}
注意:这假设您的阵列已经分配
另外,帮自己一个忙,让你的外环y和内环x,而不是那么重要,但它使它更容易可视化。
编辑: 正如Ed S.友好而准确地指出的那样,使用x作为内部循环在数据局部性方面很重要。习惯这样做早点而不是以后。