リスト構造の最後に新しいリストを加える関数PushBack(int val,List *lp)を作っているのですが、
エラーが出てしまいます。どのようにすればよいでしょうか?
struct list{
 int value;
 struct list *next;
} typedef List;

void PushBack(int val, List *lp){
 List *nl;

 nl = (List *)malloc(sizeof(List));
 nl->value = val;
 nl->next = NULL; //新しいリスト{val,NULL}を作る
 for(;;){
  if(lp->next == NULL) break;
  else lp = lp->next; //Listの最後はNULLなのでNULLがくるまで次の構造体を調べる
 }
 lp->next = nl; //リストの最後のポインタを新しく作ったリストへ繋げる
}

main(){
 int val;
 List *head = NULL;

 printf("Enter value ");
 scanf("%d",&val);
 PushBack(val,head);
 return;
}