小编Tri*_*han的帖子

使用malloc(C89)初始化main()之外的结构

我正在尝试在C中实现双向链表,我需要使用初始化函数,同时保持一个大小字段.我的代码如下:

typedef struct element{
    struct element* next;
    struct element* prev;
    int value;
}element_t;

typedef struct linkedlist{
    element_t* head;
    element_t* tail;
    int size;
}linkedlist;

void init(linkedlist* list){
    list = malloc(sizeof(linkedlist));
    list->size = 0;
}

int main(int argc, char** argv){
    linkedlist* list;
    init(list);
    return 0;
Run Code Online (Sandbox Code Playgroud)

当我尝试在init函数中访问list-> size时,我得到正确的值,但是当我尝试从main访问list-> size时,程序返回一个奇怪的,大的负值(可能是十六进制的地址) .

想知道我做错了什么.stdlib包括在内.

c malloc linked-list

-2
推荐指数
1
解决办法
219
查看次数

标签 统计

c ×1

linked-list ×1

malloc ×1