#include <stdio.h>
#include <stdlib.h>
typedef struct linknode
{
    int data;
    struct linknode *next;
    
}node;
node * create(node *head)
{
    node *p,*s;
    int x,cycle=1;
    head=(node *)malloc(sizeof(node));
    p=head;
    while(cycle)
    {
        scanf("%d",&x);
        if(x!=0)
        {
            s=(node*)malloc(sizeof(node));
            s->data=x;
            s->next=s;
            p=s;            
        }
        else
            cycle=0;
          }
    p->next=NULL;
    //     p=head;
    ////     head=head->next;
    return head;
    
    
    
}
void display(node *head)

{
    
    node *p;
    p=head;
    while(p!=NULL)
    {
        printf("%d",p->data);
        p=p->next;
    }
}
void main()
{  
    node *link;
    create(link);
    display(link);
    
    
}

不知道是为什么,这个程序可以运行,但是输入数据的时候有个错误的报告??
高手帮忙看一下??