| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1310 人关注过本帖
标题:一道关于变量所出的内存区域的考题!
只看楼主 加入收藏
牛鼻子老道
Rank: 2
等 级:禁止发言
帖 子:26
专家分:13
注 册:2010-12-21
收藏
得分:0 
回复 28楼 wujieru
提示: 作者被禁止或删除 内容自动屏蔽
2010-12-23 13:27
无尽苍穹
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:44
专家分:101
注 册:2007-3-28
收藏
得分:0 
以下是引用zhaoya881010在2010-12-23 13:18:56的发言:

不就是变量的存储方式嘛 没什么大不的 无非就是全局在静态存储区,局部在栈(stack)里嘛 ,动态存储在heap。
还有寄存器嘛 无聊
 至于怎么被禁言的只有你自己清楚吧
你还没看明白题目的意思呢!
人家问的是放在那个数据段,去看看PE结构吧
这题不水的!
2010-12-23 13:39
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。

数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。

代码段:代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

堆(heap):堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新 分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)

栈(stack):栈又称堆栈, 是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变 量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进先出特点,所以 栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。
 

Go Go Go
2010-12-23 13:42
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-12-23 13:42
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
由于栈的先进先出特点   高手
!!!

                                         
===========深入<----------------->浅出============
2010-12-23 15:59
JZY0801
Rank: 2
等 级:论坛游民
帖 子:25
专家分:36
注 册:2010-12-23
收藏
得分:0 
回复 33楼 zhaoya881010
你能够解答一下吗?
2010-12-23 16:00
快速回复:一道关于变量所出的内存区域的考题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020282 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved