void free(void *ptr)调用后ptr的值是什么
来源:互联网 发布:莎士比亚全集版本 知乎 编辑:程序博客网 时间:2024/06/05 05:37
使用后该指针变量ptr一定要重新指向NULL,防止野指针出现,有效 规避误操作。比如如下:
当然这是C版的;不全但是最后结果看截图。可以知道ptr指向还是原来的内存单元,只不过是该内存单元被标示可擦除了。
typedef struct data{ int year; char *name;}Data;Data *pd=malloc(sizeof(Data)); pd->name="pengrong"; pd->year=32; printf("%s\t%d\n",pd->name,pd->year); free(pd); printf("%s\t%d\n",pd->name,pd->year);
输出
没free的话 你的printf会按规定的数据类型去打印
而你free以后 没有了数据类型限定的内存单元空间 printf方法就没办法正常打印了
所以调用完后必须把ptr手动赋值为null;防止野指针存在。
0 0
- void free(void *ptr)调用后ptr的值是什么
- epoll_data_t里面的void *ptr; int fd; u32; u64 分析
- void * memset ( void * ptr, int value, size_t num );
- What does it mean to write `static void * ptr = &ptr` in objective-c?
- 转帖 ptr的用法
- 关于PTR的说明
- 汇编byte ptr[BP]与word ptr[BX]的区别
- while((*++ptr > '0' ) && (*++ptr <= '9' ) )的错误
- 汇编里面的PTR是什么意思?
- 关于汇编里面的PTR
- 关于PTR的说明【转】
- 汇编语言中PTR的含义
- 汇编语言中PTR的含义
- OpenCV的智能指针: Ptr
- (*(void(*) ())0)();------这是什么?
- void *
- void
- void
- Android Volley 获取磁盘已有缓存数据
- PHP学习之文件操作
- Java JDBC 学习笔记
- 关于mysql中insert、update、delete的触发器(跨库操作)
- Python常用内建模块
- void free(void *ptr)调用后ptr的值是什么
- Swift 数组,增删改查,常用的操作
- Android之AlarmManager闹铃提醒工具类
- Android:霓虹灯
- SSH——Hibernate初学者之旅(五)
- Specification_&_Datasheet_&_Books
- Android 判断锁屏、开屏等状态
- 邻近警告
- 写论文如何做相关工作(realted work)的调研