C++ I';我正在尝试创建一个函数来初始化C++;
当我尝试编译时,IDE给了我以下错误:C++ I';我正在尝试创建一个函数来初始化C++;,c++,arrays,function,initializing,C++,Arrays,Function,Initializing,当我尝试编译时,IDE给了我以下错误: random.h | 11 |错误:在“arr”之前应该有“,”或“…” 但这是我最大的问题 我可以在我的主函数中实现这一点,但我想通过调用一个函数来初始化我给它的任何2D数组。然后我有另一个打印数组的函数,但是除了语句之外,它们或多或少都是一样的。 我是一个完全的初学者,所以请随时有一些笑 void InitializeArray2D(int& arr[int x][int y]) { for (int i=0; i<x;
random.h | 11 |错误:在“arr”之前应该有“,”或“…”
但这是我最大的问题 我可以在我的主函数中实现这一点,但我想通过调用一个函数来初始化我给它的任何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];
}
}
}
void初始化array2d(int&arr[int x][int y])
{
对于(inti=0;i来说,您的函数原型非常混乱
您将需要更多类似于:
void InitializeArray2D(int &arr[][], int x, int y) {
}
或
注意:这假设您的阵列已分配
另外,帮你自己一个忙,让你的外循环y和内循环x,这并不重要,但它使可视化变得更容易
编辑:
正如Ed S.善意而准确地指出的,使用x作为内部循环在数据位置方面确实很重要。尽快习惯这样做。事实上
int& arr[x][y]
(我删除x和y的语法不正确类型指定)是指向引用数组的指针的声明。C++不允许声明引用数组。
正确的声明将是
void InitializeArray2D(int ( & arr )[x][y]);
假定x和y定义为常数。
这是语法错误,C++无论如何也没有VLAS。“同时,请自己做一个帮助,使外环Y和内环X,而不是它有那么重要”。-当然可以;数据的位置或帮你自己一个忙,使用std::vector
或std::array
。P.S:Nice avatar;)现在它给了我://Value/RavyB/Tabe/Works/No.h 23的错误:声明“ARR”作为引用数组,删除“and”,或者将数组作为双指针传递,C++不允许引用数组。这是我的错。啊,我明白了。谢谢!是的,让X和Y常量做了这个把戏。谢谢弗拉德!
void InitializeArray2D(int ( & arr )[x][y]);