C中的链表实现错误
Linked List Implementation error in C
首先很抱歉,如果我的问题有点愚蠢,但从这些愚蠢的错误中吸取教训真的很重要,特别是当我正在学习新的东西时,比如 C 编程语言中的链表,这就是我来这里的原因,我正在使用一个单独的函数实现一个简单的链表,该函数在列表的开头插入一个节点(元素),但是这个问题总是会发生,我会向您展示代码并告诉我我是否做错了什么,谢谢很多:
#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;
}
错误的意思是:赋值中的类型不兼容
Insert()
应该传递 e*
和 returns e*
.
e* Insert(e* hd,int x){
e *temp = malloc(sizeof(e));
temp->nb=x;
temp->next = hd;
return temp;
}
Insert 应该以 e* hd
作为参数并返回 e*
。方法应该是:
e* Insert(e* hd,int x){...}
首先很抱歉,如果我的问题有点愚蠢,但从这些愚蠢的错误中吸取教训真的很重要,特别是当我正在学习新的东西时,比如 C 编程语言中的链表,这就是我来这里的原因,我正在使用一个单独的函数实现一个简单的链表,该函数在列表的开头插入一个节点(元素),但是这个问题总是会发生,我会向您展示代码并告诉我我是否做错了什么,谢谢很多:
#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;
}
错误的意思是:赋值中的类型不兼容
Insert()
应该传递 e*
和 returns e*
.
e* Insert(e* hd,int x){
e *temp = malloc(sizeof(e));
temp->nb=x;
temp->next = hd;
return temp;
}
Insert 应该以 e* hd
作为参数并返回 e*
。方法应该是:
e* Insert(e* hd,int x){...}