数据结构(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函数的信息别忘了在本站进行查找喔 。
- 将数据保存到文件中c语言 将数据保存到mongodb
- 罗布人村天气 mysql语言具有的功能
- redis编程语言 redis对应c语言
- redis一般和什么语言一起开发 和redis类似的编程
- mongodb采用什么语言 mongodb的设计采用什么
- c连接mysql数据库 c连接mysql报错
- mongodb底层数据结构 mongodb底层语言
- mongodb用什么语言写的 mongodb开源吗
- mongodb是做什么的 mongodb是什么语言写的
- 易语言调用mysql存储过程 易语言mysql高并发
