第1个回答 推荐于2016-11-03
需要使用动态内存分配
目前c++不支持动态数组
int a,b;
int main(){
cin>>a>>b;
int *p=new int[a*b]//不能写成int[a][b]
}
int func(int arr[])
{
int k,i;
//如果你想调用arr[k][i]就要写成arr[a*k+i]
}
退出程序前要记得delete []p;
或者你使用一个类来保存数据程序可以自动调用析构函数.
class array_{
private :
int *p;
int row;
public:
array_(){p=new int[1*1];row=1;}
array_(int x,int y){p= new int[x*y];row=y;}
~array_(){delete[] p;}
int* getp(){return p;}
int getval(int x,int y){return a[x*row+y]; }
int setval(int x,int y,int val){return a[x*row+y]=val;}
};
int a,b;
int main(){
cin>>a>>b;
array_ arrk(a,b);
fun(arrk.get());
}
int func(int arr[])
{
int k,i;
//如果你想调用arr[k][i]就要写成arr[a*k+i]
}
int funclass(array_ arr;)
{
int k,i;
//如果你想调用arr[k][i]就要写成arr.getval(k,i);
}本回答被提问者采纳