【发布时间】:2017-05-29 06:14:20
【问题描述】:
当我以这种方式编写下一个代码时,它会返回奇怪的错误。
struct Student{
int val;
Student* next;
Student(int a){
val = a;
next = NULL;
}
};
int main(){
Student begin(0);
Student *head = &begin;
Student *pointer = head;
for(int i=0;i<3;i++){
pointer->val = i;
Student next(0);
pointer->next = &next;
pointer = pointer->next;
}
while(head != NULL){
cout<< head-> val<<endl;
head = head ->next;
}
}
我把循环改成这种方式后,它就可以工作了。
for(int i=0;i<3;i++){
pointer->val = i;
pointer->next = new Student(0);
pointer = pointer->next;
}
为什么会这样?这两种初始化下一个节点的方式有什么区别吗?
【问题讨论】:
-
什么是“奇怪的错误”?
-
输出指针链表中的值时,无限输出链表中的最后一个值
标签: c++