程序内存布局
来源:互联网 发布:如何测试导航端口 编辑:程序博客网 时间:2024/05/23 20:08
程序虚拟地址布局:
从高到低:
0X8000,0000 - 0XFFFF,FFFF 内核空间
0X7FFF,0000 - 0X7FFF,FFFF 64K的禁止进入区
0X0001,0000 - 0X7FFE,FFFF 用户空间
0X0000,0000 - 0X0000,FFFF NULL指针分配区(64K)
其中用户空间中,用户的exe程序一般加载到0X0040,0000(往高处加载),
而主线程(main/WinMain线程)的栈空间是 : 0X0003,0000 - 0X0013,0000,而且栈空间是从高位到低位分配使用,
所以如果测试下面代码:
其打印结果是:
0012,FF74
0012,FF78
0012,FF70
而且每次保持不变
而堆空间则从低往高分配,其中new最终调用 HeapAlloc(_crtheap, 0, size ? size : 1); 实现分配
在debug模式下 _crtheap = 0x003e,0000,也就是堆空间从 0X003E,0000 - 0X7FFE,0000
当然在堆空间中会有dll的加载,线程的栈空间等等,堆分配时会跳过这些被使用的空间
当创建一个线程时,其线程的栈空间其实也是通过HeapAlloc开在堆上的,所以线程的栈空间地址不固定。
- 程序内存布局
- C++程序内存布局
- c程序内存布局
- C++程序内存布局
- 程序的内存布局
- 剖析程序内存布局
- 程序的内存布局
- 程序的内存布局
- C程序内存布局
- 程序的内存布局
- C程序内存布局
- 程序的 内存布局
- 程序的内存布局
- 程序的内存布局
- C++程序内存布局
- 程序的内存布局
- c程序内存布局
- 程序内存布局,static
- CreateFile 一点总结
- 基于WinCE的嵌入式系统注册表的研究
- Struts2 s_property 标签
- apt-get update出现NO_PUBKEY错误怎么办?
- vfp on key lable 用法
- 程序内存布局
- 2009-07-10 TIPTOP
- IdS入侵检测系统
- const限定符的使用
- 记录
- 全排列
- Struts2的OGNL表达式语言
- 请问怎么把一个double的内容转换成CString的
- wince注册表编程(新建,读取,修改)