先贴出代码!!!!!!
!!!!!!!!!!!
# include <stdio.h>
# include <stdlib.h>
typedef struct LNode
{
int date;
struct LNode *next;
}Node, *LinkList;
//带头结点的单链表生成
void CreateList(LinkList L, int n)
{
L=(LinkList)malloc(sizeof(Node));//生成头指针并分配空间
L->next=NULL;//初始化单链表,此时是空表
LinkList p;
int i;
for(i=n;i>0;i--)
{
p=(LinkList)malloc(sizeof(Node));
scanf("%d",&p->date);
p->next=L->next;
L->next=p;
}
}
//当第pos个元素存在时,把他的值赋返回
int GetElem(LinkList L,int pos)
{
LinkList p; int j=1,x;
p=L->next;
while(p&&j<pos){p=p->next;j++;}
if(!p||j>pos)
return 0;
else
x=p->date;
return x;
}
int main()
{
int l1,l2,l3;//分别是三个链表的长度
int x;
LinkList La,Lb,Lc;
scanf("%d",&l1);
CreateList(La, l1);
x=GetElem(La,1);
printf("%d",x);
scanf("%d",&l2);
CreateList(Lb, l2);
scanf("%d",&l3);
CreateList(Lc, l3);
}
!!!!!!!!!!
问题是:运行到printf();(在文中用高亮表示)时,程序终止。
本人还不会调试bug,所以来请教各路前辈。
在执行到 x=GetElem(La,1);时候,La的值为空,取不到。在CreateList函数中返回L,赋值到La;
谢谢指教,我明白了。