C中的链接列表,'node'未声明(首次在此函数中使用)

时间:2017-06-26 15:23:22

标签: c linked-list

这是我得到的错误。我正在尝试用c语言实现链表。

prog.c:在函数'Insert'中:prog.c:33:26:错误:'node'未声明(首次在此函数中使用) struct node * temp =(node *)malloc(sizeof(struct node));

代码如下

#include<stdio.h>
#include<stdlib.h>

struct node{
    int data;
    struct node* next;
};

struct node* head;

void Insert(int x);
void Print();

int main(void){

    head = NULL;
    printf("how many numbers?");
    int n,i,x;
    scanf("%d",&n);

    for(i=0;i<n;i++){
        printf("Enter the number");
        sacnf("%d",&x);
        Insert(x);
        Print();
    }

    return 0;
}

void Insert(int x){

    struct node* temp = (node*)malloc(sizeof(struct node));
    temp->data = x;
    (*temp).next = head;
    head = temp;
}

void Print(){

    struct node* temp = head;
    printf("\nThe List is ");
    while(temp!=NULL){
        printf(" %d", temp->data);
        temp=temp->next;
    }
}

1 个答案:

答案 0 :(得分:2)

问题出在功能struct node* temp = (node*)malloc(sizeof(struct node));的第void Insert(int x)行,应为struct node* temp = (struct node*)malloc(sizeof(struct node));。您可以找到已更正且有效的代码Here

注意在功能sacnf("%d",&x);的第main(void)行中,它应为scanf("%d",&x);