易截截图软件、单文件、免安装、纯绿色、仅160KB

C链表问题

我建了一个带头指针的链表
头指针L 那么我想删除链表
free(l);是删除了头结点 还是连它的下面的结点也一起删了?
free(l)后 还用全删一便吗?(从内存的角度 不是从查找的角度考虑)
删头节点
回答完毕

要看你的链表是怎么创建的。

删头节点

链表节点都是一个一个new出来的。所以你的一个一个的删除,也可以做一个函数,删除整个链表。

删头结点啊

一般来说:
从一个链表中删除某个节点的操作,并不是从内存中将此节点删除,而是将它从链表中分离,撤销它与原来链表的链接关系,并且不破坏链接的顺序,还有就是在编写程序中,如果被删除的节点不再使用,一定要用free函数将其释放



除非你是链表的数组表示,整块空间是一次性malloc的,才能象你说的那样全删

删头结点

从表尾向表头,一个一个删除,最后把头接点喀嚓。
free(l);只删除头接点,表面上看链表是没了,但结果是余下的结点依然在内存中,而且无法访问了

释放的是头结点的内存,需要一个一个结点释放内存


相关问答:

一个简单的c游戏

13个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到3者退出圈子,找出最后留在圈子中的人原来的序号
结果应该是13 可我的程序的结果是11 希望好心人帮改一下
#include <stdio.h>
#include < ......

两个C文件的问题

以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......

eclipse3.5+cdt编译c有问题

编译普通的c没问题啊,但编译javah生成的就报错:
gcc -O0 -g3 -Wall -c -fmessage-length=0 -oHelloWorld.o ..\HelloWorld.c
gcc -otest.exe HelloWorld.o
d:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../. ......

为什么C写DLL文件C、PB能调用VB不能调用

为什么C写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?

1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......

c/c++每条指令和函数的执行时间是多少?

想知道每条指令或函数的系统消耗。比如系统执行int a=0;的开销是多少。有没有类似的文档之类的。不要和我说用什么clock()函数来测试。我想要相关总结好的文档
先反汇编,然后拿着cpu的指令手册查每条指令的时间周期 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号