求修改下面的程序段
是一个超市存包的小系统没有写完#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct node
{
int num;
int password;
struct node *next;
}Node,*linklist;
Node *p;
linklist l1;
void creatnode(linklist l1)
{
p=(linklist *)malloc(sizeof(Node));
p->num=NULL;
p->password=NULL;
l1=p;
}
void insertnode(linklist l1)
{
int i,j; Node *q;
for(i=0;i<5;i++)
{
q->next=p->next;
p->next=q;
}
p=p->next;
for(j=0;j<5;j++)
{
p->num=j+1;
p=p->next;
}
}
int listlength(linklist l1)/*检查是否成功建立链表*/
{
Node *p1;
int j;
p1=l1;
j=0;
while(p1->next!=NULL)
{p1=p1->next;j++;}
return j;
}
void printf1()
{
printf("#######欢迎使用密码存储箱#######\n\n");
printf("## 1.存包 ##\n\n");
printf("## 2.取包 ##\n\n");
printf("## 3.退出 ##\n\n");
printf("################################\n");
printf("请您从数字1~3中选择:\n");
}
main()
{
int a,b;
linklist l;
printf1();
scanf("%d",&a);
switch(a)
{
case 1:
printf("1.存包\n");break;
case 2:
printf("2.取包\n");break;
case 3:
printf("3.退出\n");break;
default:
printf("输入错误,请重新输入!");
}
b=listlength(l);//运行到此就无响应了
printf("%d",b);
}