在没有错误消息C ++的情况下无法将2D数组传递到函数中

时间:2016-05-07 17:22:25

标签: c++ arrays

我无法将名为“sales”的2D数组传递给函数。知道我做错了什么吗?我有C ++作为在线课程,我的老师没有帮助:(我得到的错误信息是:

  

没有重载函数的实例“getTotal”匹配参数   列表以及“COLS”:未声明的标识符

     

getTotal函数   不带2个参数“

~/Scripts/MyDirectives

1 个答案:

答案 0 :(得分:0)

首先,您在COLS定义之前使用// Global Variables const int ROWS = 4; const int COLS = 4;//this is defined here int getTotal(int[][COLS]);//now the compiler knows what COLS is 并且无法执行此操作,因此您可以先尝试使用它来修复它:

getTotal

第二个你的total = getTotal(sales, 4);函数,正如你的编译器正确指出的那样,只接受一个参数,但你在ROW传递了两个。我相信你试图将行大小作为第二个参数传递,但是在你的情况下没有必要这样做,因为你的所有函数都可以看到ROWS定义是一个全局变量(事实上你正在使用{{ 1}} getTotal函数内部。

total = getTotal(sales); //this is enough to call the function

您还应该注意,不需要将任何参数传递给getTotal函数,因为数组被声明为全局,但我不建议您在代码中广泛使用全局变量。

 int getTotal();//function prototype without parameters since sales array is global variable
 total = getTotal(); //call the function

您可能还需要重新审视getTotal内部代码的逻辑,因为当前实现(如定义与两个循环计数器相同的变量count)将导致意外结果。