链表段错误
Linked List Seg Faults
我遇到了分段错误,但我不知道问题出在哪里。
#include "stdio.h"
#include "stdlib.h"
struct node {
int data;
struct node *next;
};
struct node *head = NULL;
struct node * curr;
struct node * newNode;
void createList(){
int data,n , i ;
scanf("%d",&n);
for (i = 0 ; i < n ;i++){
scanf("%d",&data);
curr = head;
newNode = (struct node*)malloc(sizeof(struct node));
newNode->data=data;
newNode->next=NULL;
if ( curr == NULL){
head = newNode;
}else
while (curr->next != NULL){
curr = curr->next;
}
curr->next = newNode;
}
}
int main(int argc, char const *argv[])
{
createList();
return 0;
}
你能知道在哪里吗?
第一次迭代很好,但是i = 1
时出现错误。
对齐不足以在 C 中生成 块 代码 ;-)
需要牙套。没有它,语句 curr->next = newNode;
位于 else
块之外,这不是您想要的。
if ( curr == NULL){
head = newNode;
}
else {
while (curr->next != NULL){
curr = curr->next;
}
curr->next = newNode;
}
我遇到了分段错误,但我不知道问题出在哪里。
#include "stdio.h"
#include "stdlib.h"
struct node {
int data;
struct node *next;
};
struct node *head = NULL;
struct node * curr;
struct node * newNode;
void createList(){
int data,n , i ;
scanf("%d",&n);
for (i = 0 ; i < n ;i++){
scanf("%d",&data);
curr = head;
newNode = (struct node*)malloc(sizeof(struct node));
newNode->data=data;
newNode->next=NULL;
if ( curr == NULL){
head = newNode;
}else
while (curr->next != NULL){
curr = curr->next;
}
curr->next = newNode;
}
}
int main(int argc, char const *argv[])
{
createList();
return 0;
}
你能知道在哪里吗?
第一次迭代很好,但是i = 1
时出现错误。
对齐不足以在 C 中生成 块 代码 ;-)
需要牙套。没有它,语句 curr->next = newNode;
位于 else
块之外,这不是您想要的。
if ( curr == NULL){
head = newNode;
}
else {
while (curr->next != NULL){
curr = curr->next;
}
curr->next = newNode;
}