首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-24 
用new申请动态二维数组我的代码是这样的,但是会有错:#include iostream.hvoidmain(){int**p,x,y,i,jcin

用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,越界

热点排行