C中的链接列表实现错误

时间:2015-05-15 17:52:14

标签: c linked-list

首先对不起,如果我的问题有点愚蠢,但特别是当我在C编程语言中学习像Linked List这样的新东西时,从这些愚蠢的错误中学习是非常重要的,这就是我的原因。在这里,我使用单独的函数实现一个简单的链接列表,该函数在列表的开头插入一个节点(元素)但是这个问题总是会发生,我会告诉你代码并告诉我是否#&# 39;我做错了什么,而且很多:

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

typedef struct element{
    int nb;
    struct element *next;
}e;
e Insert(e hd,int x){
    e *temp = (e*)malloc(sizeof(e));
    temp->nb=x;
    temp->next = hd; /*It shows that the error is here, all what im doing here is that im letting the temp element points to whichever the head elements in pointing at so it can take it place as the first element)*/
    return temp; /*here I'm returning the @ of temp to the head node*/
}
int main(int argc, char *argv[]) {
    e *head=NULL;
    head=Insert(head,5);
    system("PAUSE");    
    return 0;
}

错误说的是:分配中的不兼容类型

2 个答案:

答案 0 :(得分:3)

Insert()应该通过e*并返回e*

e* Insert(e* hd,int x){
    e *temp = malloc(sizeof(e));
    temp->nb=x;
    temp->next = hd;
    return temp;
}

答案 1 :(得分:0)

插入应该以{{1​​}}作为参数并返回e*。方法应该是:

e* Insert(e* hd,int x){...}