#include <stdlib.h>
typedef int elemtype
typedef struct Lnode {
elemtype data
Lnode *next
}Lnode
Lnode *CreatList(Lnode *Head) {
Head = (Lnode *)malloc(sizeof(Lnode))
Head->next = NULL
Lnode *p = Head
printf("请输入元素的个数:")
int i,n
scanf("%d", &n)
for(i = 0 i < n ++i) {
p->next = (Lnode *)malloc(sizeof(Lnode))
printf("请输入第%d个元素:",i + 1)
scanf("%d", &p->next->data)
p = p->next
}
p->next = NULL
return Head
}
void AllList(Lnode *head) {
Lnode *p = head->next
while(p) {
printf("%d ", p->data)
p = p->next
}
printf("\n")
}
int main() {
Lnode *head = NULL
head= CreatList(head)
AllList(head)
return 0
}
主函数这里
Linklist Listprintf("输入创建链表的长度:")
scanf("%d",&num)
CreateList_H(List,num) //创建链表
改为
LNode List
printf("输入创建链表的长度:")
scanf("%d",&num)
CreateList_H(&List,num) //创建链表
函数内在堆上分配好内存,但是 没有传递到栈上
另外 你的变量名很迷人