将2D数组作为函数参数并将2D数组作为函数的返回类型返回

时间:2017-07-20 19:26:38

标签: c++ c++11 matrix

我正在尝试找到2D Matrix的转置并想要创建一个函数 将我的2D数组和Matrix的值数作为输入并返回 转换2D矩阵。 我在C ++中编写了以下代码

#include <iostream>
#include <string>

using namespace std;
 //int** transpose(int arr[][] , int n);
 int k=2;
 int ** transpose(int wt[1][k] , int n )
 {
    int trans[n][1];
     for(int i=0;i<n;i++)
     {
         trans[i][1] = wt[1][i];
     }
     return trans ;
 }
 int main()
 {  int n;
 cin >> n;
 int wt_vect[1][n];
  for( int i=0;i<n;i++)
  {
   wt_vect[1][i] = 0.7;
  }
int trans[n][1] = transpose(wt_vect , n);

     }

但是获取错误日志如下

7:30:错误:数组绑定在&#39;]&#39;之前不是整数常量代币 7:32:错误:预期&#39;)&#39;之前&#39;,&#39;代币 7:34:错误:在&#39; int&#39;

之前预期的不合格ID

请帮我找到使用功能的转置。 在此先感谢

2 个答案:

答案 0 :(得分:2)

如果你使用C ++,我建议避免使用C风格的数组。

如果您知道维度的运行时间,则可以使用SnackBar

在您的情况下(第二维知道运行时间),您可以使用std::array

以下是一个完整的例子

std::vector

答案 1 :(得分:0)

基本上,数组大小必须在编译时知道,基本上它不能是一个可以有任何值,没有值或改变值的变量