就爱瞎逛
2019-03-10 20:36【链表】为什么用L->Next=NULL就出错
想实现两个东西:1.求链表长度 2.求完链表长度就将链表置空
代码如下:
int Length(List L){//求链表长度
int i=0;
while(L){
L=L->Next;
i++;
}
L->Next=NULL;
return i;
}
问题出在:如果去掉函数里面 L->Next=NULL;这个,这个函数就能正常求出表长。但是加了 L->Next=NULL;这个的话,崩溃了。不懂为什么会这样。
如果想要同时实现我第一行说的,就要用下面这段代码:
int Length(List L){
List p=L;
int i=0;
while(p){
p=p->Next;
i++;
}
L->Next=NULL;
return i;
}
再加一个变量来指向表头。
为什么第一段代码不可以同时实现我第一行说的那两个呢?
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- 如何正确创建一个单链表(学生表)?
- c语言
- 1个回答
- C语言链表出错·········求解···比较简单,原谅我是个初学者吧···
- c
- 0个回答
- c语言 运行出错 求大佬帮忙
- c
- 单链表
- 2个回答
- 0xC0000005: 写入位置 0x01300000 时发生访问冲突。
- sizeof
- malloc
- 链表
- 1个回答
- 数据结构 栈堆 入栈入不了
- 数据结构
- 栈
- 2个回答
换一换