单链表段错误,求指正
程序代码:
//单链表的创建 //对于一个长度为n的单链表来说,指向链表的结点加上链表表身一共会有11个结点,头结点不在表身中 #include<stdio.h> #include<stdlib.h>//malloc,exit #define N 10 //结点 typedef struct node { int data;//数据域 struct node *next;//指向下一个结点的指针域 }Node; //创建数量为10的单链表,返回一个Node类型的指针 Node *create(int num); //void look(Node *h,int len);//从表头开始查看链表后len个结点 int main() { Node *h=NULL;//指向头结点的指针,数据域为0,链接域指向链表 h=create(N); return 0; } Node *create(int num) { if(num<0) return NULL; Node *head;//头结点(即链表中的第一个结点) Node *current;//当前指针 Node *tail;//尾结点,当前链表中最后一个结点 //初始化头结点 tail=head=NULL; int count=0; while(count<num)//循环完一次增加一个结点 { //生成结点 if((current=(Node *)malloc(sizeof(Node))) == NULL) { printf("分配空间失败\n"); exit(1); } current->data = count+1; current->next = NULL; if(head == NULL)//循环第一次,头指针没有指向任何结点 { head=tail=current;//指针的复制 } else { tail->next=current; tail = current; } } return head; }编译通过,出现段错误,不知道为什么,求大神指正