C++ delete的时效问题
来源:互联网 发布:qemu ubuntu arm 编辑:程序博客网 时间:2024/05/17 03:55
测试示例:
结果:输出结果
9
9
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
0
疑问:
delete释放之后,内容并不是立即回收的吗?
解析:
内存被释放后 表示这块儿内存可以被操作系统重新分配,但是指针还是指向这块儿内存的。虽然指针还是指向原来的位置,但是那一块内存随时都可能会被回收,因此输出的结果是具有不确定性的。所以我们在delete的同时 也要将指针置为NULL 这样在下一次调用该指针时,用if(NULL == p)才能判断出指针的状态,避免使用野指针。
那么,delete之后能不能立即生效呢?
答案肯定是可以的,不过这个也是和操作系统有关的。
在Windows操作系统下,我们通过调用相关的Windows API即可立即让操作系统进行内存回收。
结论:delete之后只是程序告诉操作系统这一块内存我需要了,操作系统可以随时回收。至于什么时候回收这一块内存,就是和操作系统有关了,我们无法知道,或者会在很久后回收,或者因为比较着急会立即回收,是具有不确定性的。因此,在delete之后我们要养成立即将指针置为NULL的好习惯!
阅读全文
0 0
- C++ delete的时效问题
- c语言中变量的存储区域和时效
- 时效炉 铍青铜时效炉的用途
- 使用临时表关联数据时效率低的问题
- 时效!
- BufferedRandomAccessFile--解决RandomAccessFile读取大文件时效率低的问题
- CSS——解决hover离开时效果突然消失的问题
- C ++的new、delete
- Intellij Ctrl+c,Ctrl+v 退格键时效,要直接编辑文件还有问题,要输入i键
- C++delete和delete[]的区别
- delete的一点问题
- new delete的问题
- delete[] 的问题
- C++ delete的问题
- 关于delete和delete[]的问题!
- Cookie的创建、遍历、最大时效
- c++---内存问题---delete p和delete[]p 区别
- delete void* 释放内存问题(C++)
- mongodb常用操作语句
- linux ubuntu16.04遇到的问题记录
- 设计模式(一)--创建型模式
- 算法 第四版 1.3.34 RandomBag
- cropper配合ajaxupload实现图片截图与上传并上传至远程服务器地址
- C++ delete的时效问题
- Android注解使用之注解编译android-apt如何切换到annotationProcessor
- c++ 中pair类模板的用法详解
- Git 常用命令速查
- 对CRUD的理解
- Dwg转dxf如何快速转换
- 24.set集合
- Java多线程--ThreadLocal
- 设计师成长要经历的5个阶段