rror de programación @linked list c insertando un nuevo elemento

Estoy intentando insertar un elemento pero aparece el error "El proceso finalizó con el código de salida 11"

struct node {
    int key;
    struct node *next;
};
struct node* init(){
    struct node *head =NULL;
    return head;
}
void create(struct node * head,int num) {
    struct node * tmp = head;
    struct node * prev = NULL;
    struct node* new = malloc(sizeof(struct node));
    new->key = num;
    prev = tmp;
    tmp = tmp->next;
    while(tmp!= NULL && tmp->key < num){
        prev = tmp;
        tmp = tmp->next;
    }
    new->next = tmp;
    prev->next = new;
    if (tmp== NULL)
        head=tmp;
    }
int main() {
    int num;
    struct node* head;
    head=init()
    printf("Enter data:");
    scanf("%d",&num);
    create(head,num);
}

Estoy tratando de insertar un elemento en una lista vinculada y el elemento debe ser ordenado e ingresado al mismo tiempo. ¿Alguien puede decirme que el error es? Parece que no puedo encontrar el error.

Respuestas a la pregunta(1)

Su respuesta a la pregunta