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

C链表问题

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

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

删头节点

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

删头结点啊

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



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

删头结点

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

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


相关问答:

c基础

#include <string.h>
#include <stdio.h>

void main()
{
int i;
char buf[]="abcde";
strncpy(buf,"abc",3);
for(i=0;i <5;i++)
printf(&q ......

ftp上传下载c文件方式

在ue中从远程unix用二进制方式下载c文件到本地,修改之后用二进制方式上传到unix中,再用vi打开该文件,每行后面就会有一个^M的换行符,如果采用ascii方式下载,二进制方式上传的话就没有^M,那请问这样会对程序文件 ......

关于the c program 的一道题!

编写程序detab, 将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止的地方。假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位。
------------------- ......

管道中输入Ctrl+C的问题求教

我在程序中用CreatePipe创建了一个管道,用它和命令行cmd.exe来关联。

现在我WriteFile来向管道写入 ping 192.168.0.1 -t 来启动ping测试,请问我如何停止这个ping? 我想向管道内写

Ctrl+C来实现,但 ......

C 程序问题 (二) - C/C++ / C语言

问一下:
#include <stdio.h>
int main()
{
  char x, y, z;
  int i;
  int a[16];
  for(i=0; i<=16; i++)
  {
  a[i] = 0;
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号