我用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;
}追问
{
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" );
}追问
{
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请按任意键继续. . .