数据结构(C语言版)中free函数的意义是什么,比如在单链表中我可不可以这样写:free(q);qfree(q);释放q指针所拥有的资源 , 告诉系统,本程序不再使用该内存地址(free的功能就是这个)
q=q-next;然后继续引用该地址 , 则程序可能会死掉!
C语言中的free函数如何正确使用free只能释放由堆动态申请的空间,但是第一个中p,q两个不同的指针变量指向同一片地址,
free(q);
q = NULL;
后,q和p指向的空间被释放,且q被赋值为NULL,但是此时p变量的值并没有改变,即其值还是原来申请的空间的首地址 。这里注意原来申请的空间已被释放 , 只是p还保留那篇空间的首地址值,所以一般开发中释放空间后 , 要把相关变量赋值为NULL,以防后面会非法访问一个已经释放的空间 。
第二个,释放了 。
C语言 free()函数的使用规则比如
int *a = (int*)malloc (100*sizeof(int));
int *b = a, *c = a + 10;
那么free(b) 和 free(a)是合法c语言链表free函数,他们的工作都是释放申请的a的内存100个int
再如用递归创建链表c语言链表free函数 ,
node* a = (node*)malloc(sizeof(node));
a-next = (node*)malloc(sizeof(node));
... ...
free(a)只释放node的申请内存,a-next不会释放,这样做会造成内存泄漏c语言链表free函数!
free的使用参考
【c语言链表free函数 c语言 链表操作】c语言链表free函数的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于c语言 链表操作、c语言链表free函数的信息别忘了在本站进行查找喔 。
推荐阅读
- 单机游戏动作僵硬,动作单机电脑游戏
- phpcms邮件设置,php邮件收发系统
- 模拟城市游戏新闻头条,模拟城市的玩法
- 角色扮演熊猫面具游戏,熊猫面具制作过程
- python解隐函数方程 python隐函数求导
- vb.net写入文件,vbnet format
- gis驱动下哪种好,gis software
- 格斗计划游戏解说,格斗策略游戏
- vb.net下一页 vb怎么跳转到下一个页面