在编写顺序表遇到的困难

这是一个简单的顺序表,但在运行时总是与我的期望不符。
我想要他进入for循环,进行插入,但是总是从“插入不合法中”跳出。
还望大佬解释解释。
```c
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
//将data和length封装成一个结构体作为顺序表的类型
typedef struct node {
    int data[MAXSIZE];
    int length;
}seqlist,*pseqlist;
//构造一个空的顺序表,返回指针
pseqlist start_list()
{
    pseqlist P;
    P = (pseqlist)malloc(sizeof(seqlist));
    if (!P)
        perror("分配空间失败");
    else
        P->length = 0;
        return (P);
}
//顺序表的插入
int insert_seqlist(pseqlist A, int i, int x) {
    int j;
    if (!A)
    {
        printf("表不存在\n");
        return -2;
    }
    if (A->length >= MAXSIZE)
    {
        printf("表溢出\n");
        return -1;
    }
    if (i<1 || i>A->length +1)
    {
        printf("插入不合法\n");
        return 0;
    }
    for (j = A->length - 1; j >= i - 1; j--) {
        A->data[j + 1] = A->data[j];
    }
    A->data[i - 1] = x;
    A->length++;
    return 1;
}
//顺序表的数值输出
void put_seqlist(pseqlist A)
{
for (int j = 0; j < A->length; j++) {
    printf("%4d", A->data[j]);
}
printf("\n");
}

int main()
{
    int digit;//插入数据的个数
    int number;//插入的数据
    int i;
    pseqlist A = start_list;
    printf("输入你要插入A的数据个数\n");
    scanf("%d", &digit);
    printf("输入你要插入A的数据\n");
    for ( i = 1; i <= digit; i++)
    {
        scanf("%d", &number);
        insert_seqlist(A, i, number);
    }
    put_seqlist(A);
    return 0;
}

```

在main里面,初始化写错了