C 分配内存的链表

C 分配内存的链表,c,linked-list,C,Linked List,当我试图为head程序分配内存时,我创建了这个链表 struct Node { int val; struct Node *next; }; struct List { struct Node *head; struct Node *tail; int size; }; typedef struct List *List; Test只是一个指针。它没有指向任何地方。它可以为空或指向任何随机地址。 您必须分配一些内存才能使用它: List Test=malloc(sizeof(Str

当我试图为head程序分配内存时,我创建了这个链表

struct Node
{
 int val;
 struct Node *next;
};
struct List
{
 struct Node *head;
 struct Node *tail;
 int size;
};
typedef struct List *List;

Test
只是一个指针。它没有指向任何地方。它可以为空或指向任何随机地址。 您必须分配一些内存才能使用它:

  • List Test=malloc(sizeof(Struct List))
    此选项将分配给dynamic struct,Test将指向它

  • Struct List Test={0}
    此选项将在堆栈上使用结构


在取消引用之前,指针必须初始化为有效地址。请发布一个。测试
指向哪里?不要在typedef后面隐藏指针性质。它更容易混淆而不是帮助。
Struct
带有大写字母
S
?还有,你怎么知道还有一个
结构列表
。我会使用“列表”
List Test;
Test->head = (struct Node *) malloc(sizeof(struct Node));