函数想返回一个二维数组怎么做
大家好,请问下我想将一个二维数组作为函数的返回要怎么做?另外把二维数组作为函数参数有没有不给第二个长度,即Bin值的办法,因为函数Convolution中我想给arr的值和Bin一样,这样函数的参数要怎么写更好一些,我是新手,请大家指点下,谢谢!
程序代码:#include <iostream>
#include <fstream>
using namespace std;
const int Run = 2;
const int Bin = 2;
int** Convolution(int arr,const int h[],int g[][Bin]);
int main()
{
ifstream inFile;
inFile.open("time.txt");
if(!inFile)
{
cerr<<"read time.txt fail"<<endl;
return 1;
}
int Pulse[Run][Bin];
int value;
inFile>>value;
for(int i=0;i!=Run;i++)
{
for(int j=0;j!=Bin && inFile.good() ;j++)
{
Pulse[i][j]=value;
inFile>>value;
}
}
if(inFile.eof())
cout<<"End of the file"<<endl;
inFile.close();
//convolution
const int signal[Bin]={2,3};
int** conv=Convolution(Bin,signal,Pulse);
cout<<*(*(conv+1)+1)<<endl;
return 0;
}
int** Convolution(int arr,const int h[],int g[][Bin])
{
int s[Run][2*Bin]; //这里我想定义一个二维数组,长度都是已知的,这样写可以吗
for(int i=0;i!=Run;i++)
{
for(int t=0;t!=2*arr;t++)
{
for(int n=0;n<=t;n++)
s[i][t]+=g[i][n]*h[t-n];
}
}
return s; //请问下这个地方应该怎么写才能返回上面的二维数组
}









,那有没有谁有做一维卷积的c++程序,可以可以告诉我,