读书人

求大神指导下!关于链表的!该如何解决

发布时间: 2013-11-11 14:02:17 作者: rapoo

求大神指导下!关于链表的!
#include <stdio.h>
#include <stdlib.h>
typedef int Elemtype;
typedef int Status;
typedef struct LNode
{
Elemtype date;
struct LNode *next;
}LNode,*Linklist;
void initlist_Link(Linklist L)
{
int i,n;//n为表的长度
Linklist p,q;
printf("输入表的长度:\n");
scanf("%d",&n);
p=(Linklist)malloc(sizeof(LNode));
p->next=NULL;
L=q=p;
for(i=n;i>0;i--)
{
p=(Linklist)malloc(sizeof(LNode));
printf("输入date:\n");
scanf("%d",&(p->date));
p->next=NULL;
q->next=p;
q=p;
}
}
void print(Linklist L)
{
Linklist p;
p=L->next;
while(1)
{
printf("%d ",p->date);
if((p->next)==NULL)
break;
else
p=p->next;
}
}
void main()
{
Linklist La;
initlist_Link (La);
print(La);
}
就是创建链表和输出链表,想问下大神们,运行之后弹出来一个Main.exe已经结束工作,问下是哪里错了。
[解决办法]


void initlist_Link(Linklist &L)///设置成引用或者
void initlist_Link(Linklist *L)///设置成指向指针的指针

[解决办法]
想要在在子函数中赋值,就必须要传址。 传值的结果就是调用initlist_Link(La)之后,La的值还是NULL。 你可以在initlist_Link 下面一行打印一下La。
[解决办法]
La是一个指针的意思是,La作为一个变量,他的值是一个地址, 最初的地址是NULL,你现在要更改La的值,那么必须要把La的地址传递进去,无论La本身是什么变量。
[解决办法]
林锐 高质量 C++& C 编程指南
[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

读书人网 >C语言

热点推荐