我正在尝试创建一个函数来初始化 2D 数组C++
I'm trying to make a function that initializes a 2D array in C++
IDE在我尝试编译时给我这个错误:
random.h|11|error: expected ',' or '...' before '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];
}
}
}
实际上
int& arr[x][y]
(我删除了x和y的语法不正确类型的指定词)是指向参考数组的指针的声明。C 不允许声明参考的数组。
正确的声明将为
void InitializeArray2D(int ( & arr )[x][y]);
规定x和y定义为常数。
笑一边,您的功能原型非常被弄脏。
您需要更多类似的东西:
void InitializeArray2D(int &arr[][], int x, int y) {
}
或
void InitializeArray2D(int **arr, int x, int y) {
}
注意:假设您的数组已经分配了
另外,帮自己一个忙,使您的外循环y和内部循环x,这并不重要,但它使其可视化更容易。
编辑: 正如Ed S.友善而准确地指出的那样,使用X作为您的内部循环在数据局部性方面确实很重要。习惯于以这种方式这样做。
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 如何仅为一个函数添加延迟
- 构造函数正在调用一个使用当前类类型的函数
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 如何创建函数管道,以便函数一个接一个地运行?
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 在c++中的复制构造函数/一个声明语句中的初始化的延续中使用chain方法
- C :基类调用自己的虚拟函数 - 一个反图案
- 如何在这个交换函数(一个单独的链表)中找到错误
- 两个相同的函数(一个使用模板模式,另一个不使用)
- 你怎么能一次给一个函数一个参数呢
- 为什么要做两个函数?(一个是非const,另一个是const)
- 当代码在其他地方使用时,如何保证函数一个接一个地被调用