进程结束后,进程的所有内存都将被释放,包括堆上的内存泄露的内存。
2015-11-20 17:25
387 查看
进程结束后,进程的所有内存都将被释放,包括堆上的内存泄露的内存。原因是,当进程结束时,GDT、LDT和页目录都被操作系统更改,逻辑内存全部消失,可能物理内存的内容还在但是逻辑内存已经从LDT和GDT删除,页目录表全部销毁,所以内存会被全部收回。
一下这段代码,我个人认为可以作为例证,不对请多指教:
[c-sharp] view plaincopy
#include <cstdlib>
using namespace std;
const static int const_once = 1024*1024*2;
int _tmain(int argc, _TCHAR* argv[])
{
int *a;
for(int cnt=0;cnt<=10;cnt++)
{
a = new int[const_once];
a[10] = 1;
a[const_once-10] = 1;
}
system("pause");
exit(0);
return 0;
}
运行结果:
在pause时:
![](http://hi.csdn.net/attachment/201102/1/0_1296549335pwm2.gif)
之后:
![](http://hi.csdn.net/attachment/201102/1/0_1296549340O87N.gif)
我这程序怎么的也不会占几百兆内存吧,可以反复尝试多次,有些人总说内存泄露直到从新启动才被回收,我想这是DOS时代吧,DOS没什么分页分段虚存这些管理,所以才会一直泄露吧。
转自:http://blog.csdn.net/x50573750/article/details/6171604
一下这段代码,我个人认为可以作为例证,不对请多指教:
[c-sharp] view plaincopy
#include <cstdlib>
using namespace std;
const static int const_once = 1024*1024*2;
int _tmain(int argc, _TCHAR* argv[])
{
int *a;
for(int cnt=0;cnt<=10;cnt++)
{
a = new int[const_once];
a[10] = 1;
a[const_once-10] = 1;
}
system("pause");
exit(0);
return 0;
}
运行结果:
在pause时:
![](http://hi.csdn.net/attachment/201102/1/0_1296549335pwm2.gif)
之后:
![](http://hi.csdn.net/attachment/201102/1/0_1296549340O87N.gif)
我这程序怎么的也不会占几百兆内存吧,可以反复尝试多次,有些人总说内存泄露直到从新启动才被回收,我想这是DOS时代吧,DOS没什么分页分段虚存这些管理,所以才会一直泄露吧。
转自:http://blog.csdn.net/x50573750/article/details/6171604
相关文章推荐
- 文本框textarea实时提示还可以输入多少文字
- django 创建表单
- Android Resource篇--- I 存放资源文件的规则
- RE选老婆
- 内核中的printk, <0>的优先级最高,<7>优先级最低
- IPv6 NDP邻居发现协议 2
- c++ STL set 使用
- UIPickerView的点滴
- 将tomcat、mysql添加到系统服务
- 查找文件位置
- ibatis动态查询条件
- 数组指针和指针数组的区别
- 状态转移矩阵(status transition matrix )
- Sorry, Ubuntu xx.xx Has Experienced An Internal Error
- Use Of Cursors And Parallel Cursors In SAP ABAP
- Factorial
- Caused by: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'xml-bod
- 容器私有云和持续发布都要解决哪些基础问题 第二集
- AngularJS路由系列(2)--刷新、查看路由,路由事件和URL格式,获取路由参数,路由的Resolve
- baos bais 意义