C链表问题
我建了一个带头指针的链表
头指针L 那么我想删除链表
free(l);是删除了头结点 还是连它的下面的结点也一起删了?
free(l)后 还用全删一便吗?(从内存的角度 不是从查找的角度考虑)
删头节点
回答完毕
要看你的链表是怎么创建的。
删头节点
链表节点都是一个一个new出来的。所以你的一个一个的删除,也可以做一个函数,删除整个链表。
删头结点啊
一般来说:
从一个链表中删除某个节点的操作,并不是从内存中将此节点删除,而是将它从链表中分离,撤销它与原来链表的链接关系,并且不破坏链接的顺序,还有就是在编写程序中,如果被删除的节点不再使用,一定要用free函数将其释放
除非你是链表的数组表示,整块空间是一次性malloc的,才能象你说的那样全删
删头结点
从表尾向表头,一个一个删除,最后把头接点喀嚓。
free(l);只删除头接点,表面上看链表是没了,但结果是余下的结点依然在内存中,而且无法访问了
释放的是头结点的内存,需要一个一个结点释放内存
相关问答:
以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......
为什么C写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?
1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......
C\C++如何计算函数的导数,本人新手,想写个程序,但是不知道如何下手,还望高手指点一二,谢过。
这个……
跟函数的具体形式有关吧,难道你想编出个“万能”的求导函数?
俺上学时想过自动推导公式,后来 ......
C/C++ code:
command.h
/* DEFUN for vty command interafce. Little bit hacky ;-). */
#define DEFUN(funcname, cmdname, cmdstr, helpstr) \
int funcname (struct cmd_element *, struct vty *, int, c ......