C或C++程序编译时内存分为几个存储区

 我来答
吉祥二进制
高粉答主

2015-01-23 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84577

向TA提问 私信TA
展开全部
1、从操作系统原理的角度来看,只有一个存储区就是虚拟内存。
2、根据功能可以分为 ,栈区 、堆区、静态区, 栈区一般指的一个函数局部变量,在编译原理中这叫做一个栈帧。 堆区一般是为了用户自由分配的,一般C语言中用MALLOC函数分配,C++中用NEW运算符来分配,它是有操作系统的堆管理器来管理的,拿windows来说,在一个程序运行后,一般至少有两个默认的堆,一个是new堆,一个进程 自己的堆, 静态区,这个一般是全局变量或者static变量使用的区域,这个区域,如果你对PE结构熟悉,就会明白这实际上是pe 区段中的.data区段,当程序运行后变成进程,这个区段是直接内存文件映射过去的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式