求助:non-portable pointer assigment in function main
											哪位能帮我看看?
希望能在源程序上帮我改下
谢谢
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
 int data;
 struct node *next;
}node;
  void insert(node *L,int x)/*在顺序递增的表中插入值为x的元素*/
{
 node *u,*p=L;
 while(p->next!=NULL&&p->next->data<x)
     p=p->next;
     if(p->next==NULL||p->next->data<x)
     {
     u=(node*)malloc(sizeof(node));
     u->data=x;
     u->next=p->next;
     p->next=u;
     }
}
create(node *L)/*头插法*/
{
node *u;
int x;
L=(node*)malloc(sizeof(node));
L->next=NULL;
scanf("%d",&x);
while(x!=0)
 {
     u=(node*)malloc(sizeof(node));
     u->data=x;
     u->next=L->next;
     L->next=u;
     scanf("%d",&x);
 }
}
main()
{
 int i;
 node *p=NULL;
 p=create(p);
 insert(p,10);
 printf("Output the list\n");
while(p != NULL)
{
printf("Node %d:%d\n",i++,p->data);
p = p->next;
}
return 0;
}

											