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

Student_admin.exe 中的 0x001f1ba7 处最可能的错误: 0xC0000005: 写入位置 0xbaadf00d 时发生访问冲突

2013-12-26 
求教:Student_admin.exe 中的 0x001f1ba7 处最可能的异常: 0xC0000005: 写入位置 0xbaadf00d 时发生访问冲

求教:Student_admin.exe 中的 0x001f1ba7 处最可能的异常: 0xC0000005: 写入位置 0xbaadf00d 时发生访问冲突
本帖最后由 jackiewan 于 2013-12-24 19:46:36 编辑 再调用void studentList::InsertInfo(int num)函数时,对前面连个变量赋值没有提示错误,当对第三个变量进行赋值时,提示访问冲突,请教下大家是什么原因呀? 我看别人帖子说是初始化问题,可是还是不很懂啊.


#ifndef STUDENT_ADM_H
#define STUDENT_ADM_H
#include <iostream>
using namespace std;
typedef struct
{
int year;
int month;
int day;
}time;
typedef struct  
{
int  xh;
char name;
time rxsj;
int  chengji;
char* zhuanye; 
char* techang;
}student;



struct Node
{
student sx;
Node *next;
};

class studentList
{
public:
studentList()
{
  head=new Node;
  head->next=NULL;
}

~studentList()
{
Node *p;
p=head;
while(head!=NULL)
{
p=head;
head=head->next;
delete p;
}
head=NULL;
}
void InsertInfo(int num);
void DeleteInfo(int a);
void DisplayInfo();
friend ostream& operator<<(ostream& os,const student& s);
private:
Node *head;
};
ostream& operator<<(ostream& os,const student& s)
{
os<<"学号:"<<s.xh<<"\t姓名:"<<s.name<<"\t成绩"<<s.chengji
         <<"\t专业:"<<s.zhuanye<<"\t特长"<<s.techang;
return os;
}

void studentList::InsertInfo(int num)
{
Node *p ,*link;
link=new Node;
p=head;
while(num!=0)
{
cout<<"请输入学号:";
    cin>>link->sx.xh;
    cout<<"请输入姓名:";
    cin>>link->sx.name;
    cout<<"请输入入学时间:";//执行到这里的时候提示访问出错,前面连个输入没有出错.
    //0x001f1ba7 处最可能的异常: 0xC0000005: 写入位置 0xbaadf00d 时发生访问冲突
   cout<<"年:";cin>>link->sx.rxsj.year;
   cout<<"月:";cin>>link->sx.rxsj.month;
   cout<<"日:";cin>>link->sx.rxsj.day;
cout<<"请输入入学成绩:";
    cin>>link->sx.chengji;
cout<<"请输入专业:";
    cin>>link->sx.zhuanye;
cout<<"请输入特长:";
    cin>>link->sx.techang;
while (p!=NULL)
{
p=p->next;
}
p=link;
link->next=NULL;
--num;
}

}

void studentList::DeleteInfo(int a)
{
Node *p,*q;
p=head;
while (p->next->sx.xh!=a)
{
p=p->next;
}

q=p->next;
p->next=q->next;
delete q;
}

void studentList::DisplayInfo()
{
Node *p;
p=head;
while(p!=NULL&&p->next!=NULL)
{
cout<<p->sx<<endl;
}
}
#endif

[解决办法]
为什么会定义char name, 而不是string name?
[解决办法]
typedef struct  
{
int  xh;
char name;
time rxsj;
int  chengji;
char* zhuanye; 
char* techang;
}student;

1.定义char name怎么使用?
2.结构体内定义的成员变量都是指针,怎么复制?
针对以上两点,可不可以把字符串定义为
typedef struct  
{
int  xh;
int  chengji;
char szName[10];
time rxsj;
char szMajor[50]; 
char szSpeciality[128];
}student;


仅供参考,大牛勿喷

热点排行