C语言线性表运行出错,返回Process returned -1073741819 (0xC0000005),找不到错啊

#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define ADDSIZE 5
typedef int status;
typedef struct{
    char name[20];
    char id_num[10];
    char post[20];
}staff;
typedef staff ElemType;
typedef struct{
    ElemType *data;
    int length;
    int MaxSize;
}List;
status CreateList(List *L,int n)
{
    int i;
    L->data = (ElemType *)malloc(sizeof(ElemType)*n);
    if(L->data==NULL)
        return ERROR;
    L->MaxSize = n;
    L->length = 0;
    for(i=0;i<n;i++)
    {
        scanf("%s%s%s",L->data[i].name,L->data[i].id_num,L->data[i].post);
        L->length++;
    }
    return OK;
}
void printList(List *L)
{
    int i;
    for(i=0;i<L->length;i++)
    {
        printf("姓名:%s 工号:%s 职务:%s",L->data[i].name,L->data[i].id_num,L->data[i].post);
        printf("\n");
    }

}
status ListDelete(List *L,int n)
{
    int i;
    if(n<1||n>L->length)
        return ERROR;
    for(i=n-1;i<L->length;i++)
        L->data[i]=L->data[i+1];
    L->length--;
    return OK;
}
status ListInsert(List *L,ElemType e,int n)
{
    int i;
    if(n<1||n>L->length+1)
        return ERROR;
    if(L->length>=L->MaxSize)
        L->data = (ElemType *)realloc(L->data,sizeof(ElemType)*(L->MaxSize+ADDSIZE));
    if(L->data==NULL)
        return ERROR;
    if(n==L->length+1)
        L->data[L->length] = e;
    for(i=L->length-1;i>=n-1;i--)
        L->data[i+1] = L->data[i];
    L->data[n-1] = e;
    L->length++;
    return OK;
}
void Entry(List *info)
{
    ElemType e;
    int n;
    printf("请输入要入职的员工信息:\n");
    scanf("%s%s%s",e.name,e.id_num,e.post);
    printf("请输入要插入的位置:\n");
    scanf("%d",&n);
    ListInsert(info,e,n);
    printList(info);
}
void Quit(List *info)
{
    int num;
    printf("请输入要离职员工的序号:\n");
    scanf("%d",&num);
    //ListDelete(info,num);
    printList(info);
}
void Create(List *info)
{
    int n;
    printf("请输入要建立线性表的初始长度,并输入信息:\n");
    info = (List *)malloc(sizeof(List));
    scanf("%d",&n);
    CreateList(info, n);
    printf("显示线性表的内容:\n");
    printList(info);
}
int main()
{
    List *info;
    Create(info);
    Quit(info);
    Entry(info);
    return 0;
}

帮我看看啊,谢谢la