C - seg错误 - 找不到错误

时间:2013-02-20 20:58:21

标签: c segmentation-fault

我正在编写一个程序(在C中)来实现一个自引用链表。我已经编写了一些代码并将其编译,但现在我遇到了分段错误,我不明白为什么。以下是我的代码:

#include <stdio.h>
#include <stdlib.h>
#define TRUE 1 
#define FALSE 0 
struct Node {  
  int value ; 
  struct Node *next;  
};


void insert(int x, struct Node **pL);
void printList(struct Node *L);

typedef int BOOLEAN;

int main(int argc, char *argv[]) {
    int i;
    struct Node *L;
    for(i = 3 ; i < 20; i+= 2) 
    insert(i,(&L));
    printList(L);
    return 0;
}



void insert(int x, struct Node **pL) {
    if((*pL) == NULL)
    {
        (*pL) = malloc(sizeof(struct Node));
        (*pL)->value = x;
        (*pL)->next = NULL;
    } else {
        insert(x, &((*pL)->next));
    }
}

void printList(struct Node *L) {
    printf("%d\n", (L)->value);
    if(((L)->next) != NULL) {
        printList((L)->next);
    }
}

1 个答案:

答案 0 :(得分:3)

您没有初始化L,然后通过insert*pL中使用它。尝试:

struct Node *L = NULL;