Windows 已在 数据结构_顺序表.exe 中触发一个断点——new和delete注意事项

实现数据结构的顺序表的类时,输入,改,删,查都可以,但是最后析构函数时持续出错
错误提示“Windows 已在 数据结构_顺序表.exe 中触发一个断点”
int *elem=new intLIST_INIT_SIZE;
    if(!elem)cout<<"overflow"<<endl;
    if(leng>LIST_INIT_SIZE)
        cout<<"error";
    else
    {    length=leng;
        int i=0;
        int *p=elem;
        for (i;i<leng;i++)
        {
            cout<<"input"<<i+1<<"num:";
            cin>>*(p+i);
        }
    }
 
最后析构delete elem总是出错,
原因:int *elem = new int[size];和int *elem = new int(size);是不一样前者是一个数组后者只是一个int型指针,所以你在访问到系统内存的时候会报错,碰巧了16前没有访问到系统内存,
 
 
修改
int *elem=new int [LIST_INIT_SIZE];





posted on 2014-05-15 13:19  zhuangwy_CV  阅读(1547)  评论(1编辑  收藏  举报

导航