如何申请二维动态数组才能在dev C++编译器中正确通过,并访问数组元素

我用C++的new申请不行

第1个回答  2012-05-29
int main()
{
int **a;
a = new int*[5]; //5行
for (int i=0; i<5; i++)
{
//每行6个整数
a[i] = new int[6];
}
//...
for (int i=0; i<5; i++)
{
//逐行释放内存
delete []a[i];
}
delete []a;
return 0;
}追问

你好,这种方法我试过了,但是dev C++中会出现异常,我就是下面这样写的:
int **App=new int *[N];//N为标准输入,K也是
for(i=0;i>App[i][j];
}
for(i=0;i<N;i++)
for(j=0;j<K+2;j++)
cout<<App[i][j];//这里就会发生异常,不知道为什么?在VS2010中没错

追答

VS2010确实没错,但我没有dev C++,看来我帮不了你了。

第2个回答  2012-05-29
int main( void )
{
int (*a)[4] = new int[3][4];

for( int i = 0; i < 3; ++i )
{
for( int j = 0; j < 4; ++j )
{
a[i][j] = i * j;
}
}
for( int i = 0; i < 3; ++i )
{
for( int j = 0; j < 4; ++j )
{
cout<< a[i][j] << ", ";
}
cout<< "\n";
}

delete[] a;

system( "pause" );
}追问

如果二维数组维数是从标准输入获得的M、N值,该怎么做啊,

追答

用楼下的办法。

追问

这样也出错的。。。我下面的回答,

追答

我用的是wxDev-c++,并没有出错。
int main()
{
int N, K;
cin>> N >> K;

int i;
int j;

int **App=new int *[N];
for(i=0;i>App[i][j];
}

for(i=0;i<N;i++)
for(j=0;j<K+2;j++)
cout<<App[i][j];

system( "pause" );
}
假设N=2,K=1,也就是申请App[2][3],以下是程序运行过程:
2
1
1
2
3
4
5
6
123456请按任意键继续. . .

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网