我正在尝试在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包括在内.