Lnode *s,*r; Linklist *L; L = r = NULL; int x; cin>>x; while(x!=0) { s = new Lnode; s->data=x;
发布网友
发布时间:2022-05-01 22:08
我来回答
共3个回答
热心网友
时间:2023-10-05 11:49
LNode *Get_LinkList(LinkList L,int i)这个函数的实现里面。看看你的代码:LNode *Get_LinkList(LinkList L,int i){
LNode *p;
int j;
p=p->next; /*错误就在这里,虽然编译的时候没错误,只是一个警告,但在这个程序里面,确实致命的!!!这里你定义了LNode *p;但是直到你使用p=p->next;这个语句时,你都没有初始化p,这意味着p可以指向内存中的任何一块区域,甚至是非常重要的保护区域,这不是你的程序应该去访问的地方,所以会引起运行错误。所以在用指针时一定要初始化,谨慎使用。这样就对了,在p=p->next;这条语句前加上p=L;就OK了。*/
热心网友
时间:2023-10-05 11:49
重新格式了下你的代码,错误百出啊
{
Lnode *s,*r;
Linklist *L;
L = r = NULL;
int x;
cin>>x;
while(x!=0)
{
s = new Lnode;
s->data=x;
if(r!=NULL) // 前面就没有修改过,总是 NULL,这两句就没意义了
r->next=NULL;
return L; //总是 return, 前面的 while 该改为 if 了
}
}
热心网友
时间:2023-10-05 11:50
if(r!=NULL) //这里r初始的时候是NULL,下面的肯定不执行啊
r->next=NULL;
能不能把完整的程序贴出来