顺序表,这段代码哪里错了


#include
#include
//顺序表的创建
//自定义类型
struct list {
    int * array;
    //指向顺序表的底层数组
    //?
    int capacity;
    int size;
};
typedef struct list* arraylist;
//将list的指针定义为arraylist
int initlist(arraylist list)
{
    //容量设定为10
    list->array=malloc(sizeof(int) * 10);
    if (list->array == NULL)
        //内存申请失败
        return 0;
    list->size = 0;
    list->capacity = 10;
    //申请动态内存空间
    return 1;
}
int main()
{
    struct List list;
    if(initlist(&list))
    {

    }
    else
    {
        printf("初始化失败!");
    }
}

1.结构体应该是List,不是list
2.分配内存记得进行类型转换,array是int *


#include<stdio.h>
#include<stdlib.h>
//顺序表的创建
//自定义类型
struct List {
    int * array;
    //指向顺序表的底层数组
    //?
    int capacity;
    int size;
};
typedef struct List* arraylist;
//将list的指针定义为arraylist
int initlist(arraylist list)
{
    //容量设定为10
    list->array=(int *)malloc(sizeof(int) * 10);
    if (list->array == NULL)
        //内存申请失败
        return 0;
    list->size = 0;
    list->capacity = 10;
    //申请动态内存空间
    return 1;
}
int main()
{
    struct List list;
    if(initlist(&list))
    {
    }
    else
    {
        printf("初始化失败!");
    }
}

出现啥错误现象了啊?