首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
付费问答
发新帖
1
0
[旧帖]
关于C++程序的内存分配
0.00雪花
发表于: 2011-10-2 14:53
4178
[旧帖]
关于C++程序的内存分配
0.00雪花
ybdesire
2011-10-2 14:53
4178
即所谓C/C++程序将内存分为堆区、栈区、静态/全局变量区、常量区
关于这个的理论网上一搜一大把
但我在学C++时用的书(C++ Primer/the C++ program language)上却从来没看到过这种说法
上网搜英文资料,“C++ program Memory allocation”方面的,也未看到过这种分配方法!!
请问大家这样的说法有根据吗?在什么资料上能查到权威的说法?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
收藏
・
1
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
6
)
门前小雪
雪 币:
31
活跃值:
(25)
能力值:
( LV2,RANK:10 )
在线值:
发帖
6
回帖
67
粉丝
0
关注
私信
门前小雪
2
楼
不管什么样的操作系统,什么样的计算机架构,进程使用的内存都可以按照功能分成以下四个部分:
(1)代码区:这个区域存储着被装入执行的二进制代码,处理器会到这个区域取指令并执行。
(2)数据区:用于存储全局变量等。
(3)堆区:进程可以在堆区动态的请求一定大小的内存,并在用完之后归还给堆区。
(4)栈区:用于动态的存储函数之间的调用关系,以保证被调用函数在返回时恢复到调用函数中继续执行。
上面引用自:《0day安全》
其实这种简单划分是让你更容易理解程序的运行机制,你说的那些关于内存的划分也都是这个原因。你要是想了解更详细的看下《windows核心编程》中内存体系结构那课。
2011-10-3 06:10
0
levizhou
雪 币:
188
活跃值:
(85)
能力值:
( LV5,RANK:60 )
在线值:
发帖
23
回帖
154
粉丝
0
关注
私信
levizhou
1
3
楼
这些底层实现东西都已经被高级语言所隐藏起来了, 不需要普通用户关心
那些书没提是怕是读者迷惑,毕竟是面向大众的书, 而内存布局/分配 不是每个人都需要关心的
或者说需要关心的时候比较少
2011-10-3 14:18
0
hakufly
雪 币:
3
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
10
粉丝
0
关注
私信
hakufly
4
楼
对的,面向大众的书不需要讲解这些。对于普通的程序开发,只需要知道这些内存区哪些是我们用户自己管理的(堆内存,new alloc申请的等),哪些是由系统管理的(栈内存等)就足够了。windows核心编程里确实有说
2011-10-3 21:13
0
hyperiris
雪 币:
220
活跃值:
(161)
能力值:
( LV4,RANK:50 )
在线值:
发帖
4
回帖
19
粉丝
0
关注
私信
hyperiris
1
5
楼
你看的这些C++ Primer属于初中级,
the C++ program language属于语言规范而不是具体实现。
你这个问题请看
深度探索C++对象模型
http://book.douban.com/subject/1091086/
有部分介绍
2011-10-3 22:59
0
jimbray
雪 币:
43
活跃值:
(20)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
4
粉丝
0
关注
私信
jimbray
6
楼
(1)从静态存储区分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量
(2)从栈上创建。在执行函数时,函数内部局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。
(3)从堆上分配。亦称动态内存分配,程序早运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete 释放内存。动态内存的生存周期由程序员决定,使用非常灵活,但问题也最多。
2011-10-3 23:02
0
ybdesire
雪 币:
93
活跃值:
(62)
能力值:
( LV2,RANK:10 )
在线值:
发帖
14
回帖
67
粉丝
0
关注
私信
ybdesire
7
楼
谢谢大家的提示
从汇编角度考虑,汇编的框架就是.DATA, .CODE, .STACK, 没那么多其它的概念
不知道这种说法在国外有没有
2011-10-4 21:48
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
ybdesire
14
发帖
67
回帖
10
RANK
关注
私信
他的文章
[推荐]一个详细的Androguard教程
8031
[求助]请教什么是 tainted packages ?
3182
[求助]简单smali代码编译出错
5741
关于C++程序的内存分配
4179
Reflector7.0+Reflexil1.2修改代码的一些问题
10592
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部