原本想用一个for循环来向链表里增加节点
for (int i = 1; i <= n;i++) {
cout << "输入第" << i << "位同学的学号和成绩" << endl;
stu s ;
s.next = NULL;
cin >> s.xuehao >> s.score;
students.add(&s);
cout<<&s<<endl;
}
结果:每次创建的s变量地址都一样,导致链表不能增加节节,并且陷入死循环。
修改后:
for (int i = 1; i <= n;i++) {
cout << "输入第" << i << "位同学的学号和成绩" << endl;
stu *s=new stu;
s->next = NULL;
cin >> s->xuehao >> s->score;
students.add(s);
}
在循环里使用new方式动态初始化对象或结构体变量