C 显示链接列表时出现运行时错误的原因可能是什么
在指定位置插入新节点C 显示链接列表时出现运行时错误的原因可能是什么,c,linked-list,runtime-error,C,Linked List,Runtime Error,在指定位置插入新节点 } 由于head->next未初始化,因此在链接列表的末尾没有空终止符。这会导致未定义的行为 void insert(){ Node* nn; nn = (Node*)malloc(sizeof(Node)); printf ("Name: "); scanf ("%s", nn->name); nn->next = head; head = nn; return; } 由于head->next未初始化,因此在链接列表的末尾没有空终止符。这会导致未定
}
由于head->next未初始化,因此在链接列表的末尾没有空终止符。这会导致未定义的行为
void insert(){
Node* nn;
nn = (Node*)malloc(sizeof(Node));
printf ("Name: ");
scanf ("%s", nn->name);
nn->next = head;
head = nn;
return;
}
由于head->next未初始化,因此在链接列表的末尾没有空终止符。这会导致未定义的行为
void insert(){
Node* nn;
nn = (Node*)malloc(sizeof(Node));
printf ("Name: ");
scanf ("%s", nn->name);
nn->next = head;
head = nn;
return;
}
无需预先分配头部节点;只需将其保留为NULL并继续执行插入循环。如前所述,您的insert被调用三次,但您有四个节点。希望这就是您想要的。我希望您可能会对此感兴趣:-您可能希望对头部使用静态分配。无需预先分配头部节点;只需将其保留为NULL并继续执行插入循环。如前所述,您的insert被调用三次,但您有四个节点。希望这是你想要的。这可能会引起你的一些兴趣,我希望:-你可能想使用静态分配的头部。
void insert(){
Node* nn;
nn = (Node*)malloc(sizeof(Node));
printf ("Name: ");
scanf ("%s", nn->name);
nn->next = head;
head = nn;
return;
}
/* In main() */
head = malloc(sizeof(Node));
head->next = NULL;