
C++中,能不能根据输入的m,n值的大小,动态地建立一个二维数组A[m][n]?,可以的话,给个源代码实例。
6个回答
展开全部
能,示例程序:
#include<iostream>
using namespace std;
int main()
{
int **ar;
int n,m;
int i=0,j=0;
cin>>n>>m;
ar=new int * [n];
for(i=0;i<n;i++)
ar[i]=new int[m];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
ar[i][j]=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<ar[i][j];
cout<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int **ar;
int n,m;
int i=0,j=0;
cin>>n>>m;
ar=new int * [n];
for(i=0;i<n;i++)
ar[i]=new int[m];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
ar[i][j]=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<ar[i][j];
cout<<endl;
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的。
int m,n;
获得m,n后
int *A;
A=new int[m*n];
如果要读A[x][y]的话,就是A[x+y*m]
使用完后记得delete []A
int m,n;
获得m,n后
int *A;
A=new int[m*n];
如果要读A[x][y]的话,就是A[x+y*m]
使用完后记得delete []A
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以,定义为二维指针,以前别人给我解答的
A** ga = new A*[m];
for(int i = 0; i < m; i++)
ga[i] = new A[n];
...
for(int i = 0; i < m; i++)
delete []ga[i];
delete []ga;
A这里是值类型,你可以替换成int等。
A** ga = new A*[m];
for(int i = 0; i < m; i++)
ga[i] = new A[n];
...
for(int i = 0; i < m; i++)
delete []ga[i];
delete []ga;
A这里是值类型,你可以替换成int等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c中不允许动态定义数组
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询