单链表段错误,求指正
程序代码://单链表的创建
//对于一个长度为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;
}编译通过,出现段错误,不知道为什么,求大神指正








count++