读书人

用new申请动态二维数组,该如何解决

发布时间: 2012-02-24 16:30:39 作者: rapoo

用new申请动态二维数组
我的代码是这样的,但是会有错:
#include <iostream.h>
void main()
{
int **p,x,y,i,j;
cin> > x;
cin> > y;
p=new int *[x];
for(i=1;i <x+1;i++)
p[i]=new int[y];
for(i=1;i <x+1;i++)
{
for(j=1;j <y+1;j++)
cin> > p[i][j];
cout < <endl;
}
for(i=1;i <x+1;i++)
{
for(j=1;j <y+1;j++)
cout < <p[i][j] < < " ";
cout < <endl;
}
for(i=1;i <x+1;i++)
delete []p[i];
delete []p;
}
但是当下标为0开始的时候,就没有错误,请问为什么?谢谢大家!

[解决办法]
for(i=1;i <x+1;i++)
你申请的最大为X,可是在这里你用到了X,数组为从0到x-1,越界

读书人网 >C++

热点推荐