社区
C++ 语言
帖子详情
内存空间分几部分,代码段、数据段,栈,堆,还有吗?
bjwqt
2009-09-21 07:50:55
内存空间分几部分,代码段、数据段,栈,堆,还有吗?
---------------------------------------------------
函数代码存放在代码段。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间。
全局变量或静态变量,放在数据段,
局部变量放在栈中,
用new产生的对象放在堆中,
以上是我的理解,不知是否正确。还有没说到的内存空间吗?
...全文
587
17
打赏
收藏
内存空间分几部分,代码段、数据段,栈,堆,还有吗?
内存空间分几部分,代码段、数据段,栈,堆,还有吗? --------------------------------------------------- 函数代码存放在代码段。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间。 全局变量或静态变量,放在数据段, 局部变量放在栈中, 用new产生的对象放在堆中, 以上是我的理解,不知是否正确。还有没说到的内存空间吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jeanszu
2009-09-21
打赏
举报
回复
学习了
别逗我乐
2009-09-21
打赏
举报
回复
呵呵,学习了>
zhenghua809
2009-09-21
打赏
举报
回复
STACK(栈)临时局部
HEAP(堆)动态
RW(读写)全局
RO(只读)代码
Char* s=”Hello,World”; S中“H”存放在内存RO中且不能修改。
jasonnbfan
2009-09-21
打赏
举报
回复
代码段、数据段这个段通常指PE(exe,dll)文件中的SECTONS,这些内容是映射到内存。
和堆、栈不是一个概念。
tutu08
2009-09-21
打赏
举报
回复
学习了
brookmill
2009-09-21
打赏
举报
回复
[Quote=引用 5 楼 bjwqt 的回复:]
堆和栈是都放在堆栈区吗?
全局区、常量区就放在数据段吗?
[/Quote]
这个不一定,有可能和编译器相关。
比如,有的常量可能会保存在代码段。
bjwqt
2009-09-21
打赏
举报
回复
[Quote=引用 3 楼 brookmill 的回复:]
如1楼所说,把代码段、数据段,栈,堆这些并列在一起不太合适
代码段、数据段、堆栈段,这是一个概念
堆、栈、全局区、常量区,这是另一个概念
[/Quote]
堆和栈是都放在堆栈区吗?
全局区、常量区就放在数据段吗?
失落的玛阿特
2009-09-21
打赏
举报
回复
学习
lovecl85
2009-09-21
打赏
举报
回复
占位学习
科技完美生活
2009-09-21
打赏
举报
回复
学习了
brookmill
2009-09-21
打赏
举报
回复
如1楼所说,把代码段、数据段,栈,堆这些并列在一起不太合适
代码段、数据段、堆栈段,这是一个概念
堆、栈、全局区、常量区,这是另一个概念
brookmill
2009-09-21
打赏
举报
回复
还有一个常量区,其中的内容不许修改。
常见的 char *p = "hello"; 这里面的"hello"就保存在常量区
飞天御剑流
2009-09-21
打赏
举报
回复
基本是这样了。
但注意的是,代码段、数据段、栈是CPU级别的逻辑概念,堆是语言级别的逻辑概念。
非兔子_Logic0
2009-09-21
打赏
举报
回复
[Quote=引用 11 楼 cyblueboy83 的回复:]
代码段、数据段、堆栈段,这是一个概念
堆、栈、全局区、常量区,这是另一个概念
[/Quote]
这个是正解
FILWFQFE
2009-09-21
打赏
举报
回复
学习了
总感觉似懂非懂
sun007700
2009-09-21
打赏
举报
回复
study~
herman~~
2009-09-21
打赏
举报
回复
代码段、数据段、堆栈段,这是一个概念
堆、栈、全局区、常量区,这是另一个概念
内存空间
分几
部分
:
代码
段
、
数据
段
,
栈
,
堆
(收集整理)
1.函数
代码
存放在
代码
段
。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占
代码
段
空间。 全局变量或静态变量,放在
数据
段
, 局部变量放在
栈
中, 用new产生的对象放在
堆
中, 内存分为4
段
,
栈
区,
堆
区,
代码
区,全局变量区 BSS
段
:BSS
段
(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 BSS是英文Block Started by
内存空间
分几
部分
:
代码
段
、
数据
段
,
栈
,
堆
转自:http://blog.csdn.net/yeyuangen/article/details/6766567 1.函数
代码
存放在
代码
段
。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占
代码
段
空间。 全局变量或静态变量,放在
数据
段
, 局部变量放在
栈
中, 用new产生的对象放在
堆
中, 内存分为4
段
,
栈
区,
堆
区,
代码
区,全局变量区 BSS
段
:BSS
段
(bss se
程序
内存空间
(
代码
段
、
数据
段
、
堆
栈
段
)
在冯诺依曼的体系结构中必须有:
代码
段
,
堆
栈
段
,
数据
段
。 进程的虚拟地址空间图示如下:
堆
栈
段
: 1. 为函数内部的局部变量提供存储空间。 2. 进行函数调用时,存储“过程活动记录”。 3. 用作暂时存储区。如计算一个很长的算术表达式时,可以将
部分
计算结果压入
堆
栈
。
数据
段
(静态存储区): 包括BSS
段
的
数据
段
。BSS
段
存储未初始化的
C语言的内存管理(
代码
段
、
数据
段
,
栈
,
堆
)
C语言的内存管理(
代码
段
、
数据
段
,
栈
,
堆
) C语言程序分为映像和运行两种状态,经过编译连接后形成的映像由:
代码
段
(text)
数据
段
(data 包括RO data ,RW data), 其他
段
(调试的
段
,动态库共享库链接表的
段
)组成。可执行文件在内存运行时由
栈
,
堆
,
数据
段
(由三
部分
部分
组成:只读
数据
段
,已经初始化读写
数据
段
,未初始化
数据
段
即BBS)和
代码
段
组成,如下图所示:
栈
区...
程序运行时对应的内存分布(BSS
段
、
数据
段
、
代码
段
、
堆
、
栈
)关系
程序运行时的内存分区主要分为BSS
段
、
数据
段
、
代码
段
、
堆
、
栈
。 BSS
段
:Block Started by Symbol,一般是指存放程序中未初始化的全局变量的一块内存区域。BSS
段
属于静态内存分配。
数据
段
:data segment,一般是指用来存放程序中已初始化的全局变量的一块内存区域。
数据
段
属于静态内存分配。
代码
段
:code segment/text segment,通常是指用来存放程序执行
代码
的一块内存区域。这
部分
区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许
代码
C++ 语言
65,194
社区成员
250,524
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章