使用new,别忘了用delete释放内存
#include
#include"string"
using namespace std;
struct student
{
int id;
string name;
int grade;
student*next;
};
void Setup(student*&head,int num)//num是链表长度
{
int i=0;
student *p, *q;
p = new student;
cout<<"输入:";
cin >> p->id >> p->name >> p->grade;
head = p;
for (i = 1; i < num;i++)
{
q = p;
p = new student;
cout<<"输入:i="< cin >> p->id >> p->name >> p->grade;
q->next = p;
}
p->next = NULL;
p=head;
while (p)
{
//p = head;不能放在循环中
cout << p->id << " " << p->name << " " << p->grade << endl;
p = p->next;
}
//一定要用delete释放内存
p=head;
while(p)
{
q=p->next;
cout<<"释放内存:"<delete p;
p=q;
}
}
void main()
{
student *h;
Setup(h,5);
}
void Setup(student*&head,int num)//num是链表长度
{
int i=0;
student *p, *q;
p = new student;
cin >> p->id >> p->name >> p->grade;
head = p;
for (i = 1; i < num;i++)
{
q = p;
p = new student;
cin >> p->id >> p->name >> p->grade;
q->next = p;
}
p->next = NULL;
while (p)
{
p = head;//把这条语句写到p->next = NULL;后面去
cout << p->id << " " << p->name << " " << p->grade << endl;
p = p->next;
}
}
我要回答|搜索相关资料