分段错误(核心已转储)找不到错误

时间:2020-09-21 14:30:09

标签: c++

Test_1 = "AAA"
Test_2 = "BBBB"

final = [Test_1, Test_2]

print(final)

['AAA', 'BBBB']


运行此代码时出现细分错误(核心哑音)

1 个答案:

答案 0 :(得分:1)

Node* temp = head;
while(temp!=NULL){
    temp = temp->next;
}

这将确保您退出此循环的唯一方法是temp为null。在下一行你会做什么?

temp->next = newNode;// I think fault is here.

取消引用temp!您可能希望temp指向循环后的最后一个节点。您可以这样做:

Node* temp = head;
while(temp!=NULL && temp->next != NULL){
    temp = temp->next;
}

甚至更干净的(imo),因为您已经在其上方的head分支中将if检查为空,所以我们不需要检查temp != NULL并且可以进行冷凝全部进入for循环:

for(Note *temp = head; temp->next != NULL; temp = temp->next) { }