错误:尝试创建链接列表时出现未知类型名称列表

时间:2015-12-29 03:37:57

标签: c linked-list

所以我是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] |

帮助表示感谢。

1 个答案:

答案 0 :(得分:4)

正在使用结构类型的任何地方(假设您没有使用typedef),您必须在类型名称前加上struct关键字。

所以这个:

void add(List *list, int value){

应该是:

void add(struct List *list, int value){