【问题标题】:errors in passing 2-Dimesional array in a function [closed]在函数中传递二维数组时出错[关闭]
【发布时间】:2014-11-04 09:43:09
【问题描述】:
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'

对不起,如果我问了一个琐碎的问题,但现在我无法弄清楚。

我们将不胜感激。

【问题讨论】:

  • ...那么你在哪里声明n
  • 在 int arr[][n] 中,n 只是这样声明的,当我们传递二维数组时

标签: c++ arrays parameter-passing


【解决方案1】:

这个错误信息

错误:'n' 未在此范围内声明

够清楚了。编译器看不到 n 的声明。

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

【讨论】:

  • 谢谢我知道了!我应该写在我的程序的顶部,比如“const int n = 3;”那么它会起作用的。我的坏!
  • @Geek_Akash 根据您的代码,sn-p n 必须定义为等于 4。k 等于 3。
  • 是的,它(n=3) 仅用于说明。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
相关资源
最近更新 更多