所以我是C的新手,我正在尝试创建我的链表。但由于某种原因,我不断得到这个error: unknown type name List
。这就是我到目前为止所做的:
struct Node{
int data;
struct Node *next;
};
struct List{
struct Node *head;
};
void add(List *list, int value){
if(list-> head == NULL){
struct Node *newNode;
newNode = malloc(sizeof(struct Node));
newNode->data = value;
list->head = newNode;
}
else{
struct Node *tNode = list->head;
while(tNode->next != NULL){
tNode = tNode->next;
}
struct Node *newNode;
newNode = malloc(sizeof(struct Node));
newNode->data = value;
tNode->next = newNode;
}
}
void printNodes(struct List *list){
struct Node *tNode = list->head;
while(tNode != NULL){
printf("Value of this node is:%d", tNode->data);
tNode = tNode->next;
}
}
int main()
{
struct List list = {0}; //Initialize to null
add(&list, 200);
add(&list, 349);
add(&list, 256);
add(&list, 989);
printNodes(&list);
return 0;
}
我来这里是为了寻求帮助,因为我不知道如何在C中调试并且来自Java不太了解指针,内存分配和内容,并想知道我是否可能以某种方式搞砸了。我也进一步得到这个警告,不知道这可能意味着什么。
警告:隐式声明函数'add'[-Wimplicit-function-declaration] |
帮助表示感谢。
答案 0 :(得分:4)
正在使用结构类型的任何地方(假设您没有使用typedef
),您必须在类型名称前加上struct
关键字。
所以这个:
void add(List *list, int value){
应该是:
void add(struct List *list, int value){