我试图在C中实现一个双向链表,并且我需要使用初始化函数,同时保持大小字段。我的代码如下:使用malloc初始化main()之外的结构(C89)
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;
当我试图访问列表 - >尺寸的初始化函数,我得到正确的值,但是当我尝试从主访问列表 - >尺寸程序返回一个奇怪的大负值(可能是十六进制的地址)。
想知道我做错了什么。包括stdlib。
我没有得到反对票。所提供的代码是一个明确的问题。 – hetepeperfan