在函数中传递二维数组时的错误

时间:2014-11-04 09:43:09

标签: c++ arrays parameter-passing

int *mergeKArrays(int arr[][n], int k)  <--[see below for errors at this line]
{
int *output=new int[n*k];
}

在上面的函数中,我没有在这里包含完整的定义,因为它没有用于查找错误。

主要功能是这样的,我在调用mergeKArrays函数。

int main()
{
  int arr[][n]={{2, 6, 12, 34},
                 {1, 9, 20, 1000},
                 {23, 34, 90, 2000}};
  int k = sizeof(arr)/sizeof(arr[0]);

  int *output = mergeKArrays(arr, k);
}

现在我得到的错误是在函数定义的行上就是这样。

error: 'n' was not declared in this scope.

error: expected ')' before ',' token

error: expected unqualified-id before 'int'

对不起我,如果我问了一个微不足道的问题,但现在我无法弄明白。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

此错误消息

  

错误:&#39; n&#39;未在此范围内声明

足够清楚了。编译器没有看到n。

的声明

考虑到数组的大小应该是一个常量表达式。因此,代码中的n应声明为常量对象。