关于free()函数的一些说明
来源:互联网 发布:淘宝办电工证是真的吗 编辑:程序博客网 时间:2024/06/11 15:34
free()函数在头文件malloc.h中有相关的声明。其原型是:void free(void *ptr);其作用是用来释放malloc向系统申请的内存。
文章主要对free()作用于指针后的一些后续性的一些说明。希望能帮助到大家了解free()更深层次的一些问题!
这里我提出一个观点是:用free()函数来释放了malloc()申请的内存之后,只是其内容被清空了并且程序不再拥有这段内存的使用权,但是其指针还是指向这块内存!
我用一个程序片段来说明:
voidtest( void ){ int *ptr = malloc( sizeof( int ) ); *ptr = 100000; printf(" ptr的地址是0x%x 内容是%d\n",ptr,*ptr); free(ptr); printf("释放之后ptr的地址是0x%x\n",ptr); //这里不能读取ptr的内容因为已经被释放 }
指向那块内存。只不过那块内存的使用权已经不归你程序所有而已。看到这里我想读者现在就能够明白为什么free()
之后还要把指针指向NULL;其作用就是为了防止野指针的出现。野指针就是说指向了一块并不属于你的内存的指
针。
所以这里也可以看出free()的一些内在的缺陷。它并不能完全的防止错误的读操作。
措施是每次我们用完free()之后都要将ptr在指向NULL;或者你可以重写一个free()。然后将它在放回gcc的include这个文件里面。
0 0
- 关于free()函数的一些说明
- 关于malloc函数和free函数的一些总结
- 关于ReadDirectoryChangesW这个函数的一些说明!
- 关于malloc与free的一些
- 关于malloc与free的一些探索
- 关于字符串操作的一些函数简单说明与应用
- 关于C语言中一些常用函数的说明
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于 free() 函数用法的若干疑问
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 轻松实现Android登录Demo
- jquery实现点击父类中的子类下的子类a,控制父类下的子类b的变换
- jsp页面动态加载form标签的action地址和里面的submit按钮事件
- vs2012 error c4996: 'fopen': This function or variable may be unsafe解决方法
- 如何进行Monkey Test
- 关于free()函数的一些说明
- 点在多边形内算法——判断一个点是否在一个复杂多边形的内部
- Fragment生命周期
- 解决 Mac OS SSH 登陆 Linux 出现中文乱码问题
- 第十四周项目四 处理C++源代码的程序(统计main函数、简单整理格式、在代码前加行号)
- MapReduce小文件处理之CombineFileInputFormat实现
- 读书笔记-《细说PHP》
- HttpURLConnection(二)
- CocoaPods的安装和使用