社区
C++ 语言
帖子详情
内存布局问题
crazylibai
2009-10-15 02:54:34
windows中堆栈、静态数据存储区、代码区在内存中的布局是怎么样的?
...全文
38
1
打赏
收藏
内存布局问题
windows中堆栈、静态数据存储区、代码区在内存中的布局是怎么样的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hifan
2009-10-15
打赏
举报
回复
来让我告诉你吧:
栈:每个线程有个,默认大小1M,编译时可以设定,一般是从高地址到低地址;作用是用来做函数调用的,压参数和本地变量。
堆:进程默认一个,但是可以自己创建自己需要的堆,默认大小1M,可以扩展,用来分配new(malloc in C)的数据。
静态数据存储区:在PE文件中有.bss和.data段,其中.bss是未初始化全局变量;.data是已经初始化的全局变量,一般在程序被加载到内存空间中时加载,按照Windows页内存管理机制,加上Page_ReadWrite或者其他属性。
代码区:在PE文件中是.code段,一般来说都是只读段,也是在程序加载的时候被加载进内存。page 设置为Page_ReadOnly。
可以参考:Windows内存管理
错误纠正--
内存
布局
问题
以前一直有一个错误的观点,以为一块
内存
还带有比如int、float或public或private描述,其实大错特错,
内存
布局
很简单,就是01填充的块,没什么多余的。至于int、float或public和private等都是来描述“符号”或“名字”的,这里符合或名字指变量名或函数名等编译器符号表里的符合。
Linux进程
内存
布局
概述
32位进程经典
内存
布局
Linux内核 2.6.7 以前的默认进程
内存
布局
形式,mmap区域与栈区域相对增长, 堆只有 1GB 的虚拟地址空间可以使用,继续增长就会进入 mmap 映射区域. 对于 64 位系统,提供了巨大的虚拟地址空间,这种
布局
就非常合适. 32位进程默认
内存
布局
栈至顶向下扩展,并且栈是有界的。堆至底向上扩展,mmap 映射区域至顶向下扩展,mmap 映射区域和堆相对扩展,直至耗尽虚拟地址空间中的剩余区域,这种结构便于 C 运行时库使用 mmap 映射区域和堆进行
内存
分配。这种
布局
形式
Java对象的
内存
布局
Java对象的
内存
布局
(一)简述 曾经有这样一道面试题,问:Object ob = new Object()中的ob占几个字节。想回答这个题目就必须要知道Java对象的
内存
布局
问题
。 对象
布局
研究的
问题
的实质就是看看java的对象在
内存
中是如何储存的,应该遵循什么样的格式。首先我们都知道,堆中存储的对象包括普通对象和数组对象,而每个对象在
内存
中都由三个部分组成,分别为对象头、实例数据和补齐部分。 其中,普通对象的对象头中有markword和classPointer两个部分,而数组对象比普通对象多了一个数
C语言的
内存
布局
问题
1 。 每次都会遇到这个
问题
,一直是看了又忘,忘了又看。本文主要简介一下c中的
内存
类型和
布局
问题
。 2。
内存
的类型 (1)栈区(stack):由编译器自动分配和释放的,存放函数的参数值、局部变量的值等。操作方式类似数据结构中的栈。 在函数参数和地址入栈情况中,一般是从左向右将变量入栈,最后函数的地址入栈。 (2)堆区(hea
C程序
内存
布局
C程序
内存
布局
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章