| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 128 人关注过本帖
标题:请教c++高手。调试的内存问题
收藏  订阅  推荐  打印
本主题由 静夜思 于 2008-8-10 18:49 拒绝承认原创
aaaaaa
Rank: 1
等级:新手上路
帖子:24
积分:328
注册:2004-10-12
请教c++高手。调试的内存问题

我写了个学生管理的,可以插入,删除,查看。我调试时,它没有找到错误。但当我添加了一个学生资料后,再查看全部或者删除这位学生的资料时就说内存出错,请教一下各位c++高手该如何修改。代码如下:
#include <iostream>
#include <string>
using namespace std;
class roll
{
private:                    //学生会成员属性                  
    long int _id;                // 学号
    string _name;          //姓名
    string _sex;            //性别
    string _brithday;      //出生日期
    string _look;          //政治面貌
    long int _num;              //联系电话方式
    string _address;        //家庭住址
   
public:
    roll(long int id,string name,string sex,string brithday,string look,long int num,string address)  //构造函数
    {
        _id=id;_name=name;_sex=sex;_brithday=brithday;_look=look;_num=num;_address=address;
        
    }
    long int Id() {return this->_id; }
    string Name() {return this->_name;}
    string Sex() {return this->_sex;}
    string Brithday() {return this->_brithday; }
    string Look()  {return this->_look;}
    long int  Num(){return this->_num;}
    string Address() {return this->_address;}
   
};
int main()
{
roll *member[50];
    member[0]=new roll(1234567,"王1","男","11/14/1987","共青团员",36901234,"广东广州");
    member[1]=new roll(2345678,"王2","女","12/14/1987","党员",36902345,"广东佛山");
    member[2]=new roll(3456789,"王3","男","1/14/1987","共青团员",36903456,"广东深圳");
    member[3]=new roll(4567890,"王4","女","2/14/1987","党员",369045678,"广东东莞");
    member[4]=new roll(5678901,"王5","男","3/14/1987","共青团员",36905678,"广东中山");
    int n=1;
    int m=3;
    while(n!=0)
{  
        cout < <"请选择你要进行的操作:" < <endl;  //选择你要进行的操作
        cout < <"插入学生的基本信息请选择-1" < <endl;
        cout < <"删除学生的基本信息请选择-2" < <endl;
        cout < <"输出基本信息数据项请选择-3" < <endl;
      
        cout < <"退出请选择-0" < <endl;
        cin>>n;
        m++;
        switch (n)
        {
case 1:
{  string nname;
          string ssex;
          string bbrithday;
          string llook;
          long int nnum,iid;
          string aaddress;
            cout < <"输入学号:" < <endl;
            cin>>iid;
            cout < <"输入姓名:" < <endl;
            cin>>nname;
            cout < <"输入性别:" < <endl;
            cin>>ssex;
            cout < <"输入出生日期:" < <endl;
            cin>>bbrithday;
            cout < <"输入政治面貌:" < <endl;
            cin>>llook;
            cout < <"输入联系电话方式:" < <endl;
            cin>>nnum;
            cout < <"输入家庭住址:" < <endl;
            cin>>aaddress;
            member[m]=new roll(iid,nname,ssex,bbrithday,llook,nnum,aaddress);
            break;
}
          case 2:
  {
  long int checkID;
  cout < <"输入你要删除的学生学号:" < <endl;
                  cin>>checkID;
                  for(int i=0;i <=m;i++)
  {  
        if(checkID==member[i]->Id())
    delete member[i];
  }
break;
  }
case 3:
  {
  for(int i=0;i <=m;i++)
  cout < <member[i]->Name() < <"的基本信息为:" < <endl < <"        学号:" < < member[i]->Id() < <endl
  < <"        性别:" < < member[i]->Sex() < <endl < <"        出生日期:" < < member[i]->Brithday() < <endl
  < <"        政治面貌:" < < member[i]->Look() < <endl < <"        联系电话方式:" < < member[i]->Num() < <endl
  < <"        家庭住址:" < < member[i]->Address() < <endl < <endl;
                break;
  }
          default :cout < <"输入错误,请重新输入。" < <endl;break;
}

    }
    return 0;
}


//出现的应用程序错误是写着"0x00403280"指令引用的“0xccccccd14”内存。该内容不能为“read”。
2008-8-6 14:27
共有 127 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.059570 second(s), 10 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved