从上往下一次是
栈区 :局部变量
堆区
BSS段
数据区
代码区
在ARC环境下,block 如果不使用外部变量则是全局block(NSGlobalBlock)
如果使用外部变量则是堆block(NSMallockBlock)
在MRC环境下,block不使用外部变量还是全局block(NSGlobalBlock)
如果使用外部变量则是栈block(NSStack...
分类:
其他好文 时间:
2015-07-10 16:43:10
阅读次数:
92
Text:代码段。存放程序的全部代码(指令),来源于二进制可执行文件中的代码部分,在编译的时候就已经放置到二进制文件中。Initialized data(简称data段)和uninitialized data(简称bss段)组成了数据段。其中data段存放的是已初始化全局变量和已初始化static局...
分类:
系统相关 时间:
2015-07-08 10:51:39
阅读次数:
311
一、内存介绍
本文主要介绍C内存管理基本概念,以及C语言编译后的可执行程序的存储结构和运行结构。
在用户存储空间,一个C程序的在内存中的分配分类5大部分:代码段、全局已初始化数据段、bss段、堆和栈。其中各部分具体所指:
1、代码段(text segment)
存放CPU执行的机器指令(machine instructions)。代码区通常是只读的,使其...
分类:
其他好文 时间:
2015-06-23 11:59:02
阅读次数:
142
CSAPP缓冲区溢出实验(下)3.3 Level 2: 爆竹实验要求这一个Level的难度陡然提升,我们要让getbuf()返回到bang()而非test(),并且在执行bang()之前将global_value的值修改为cookie。因为全局变量与代码不在一个段中,所以我们不能让缓冲区一直溢出到.bss段(因为global_value初始化为0,所以它会被放在.bss而非.data段以节省空间)覆...
分类:
移动开发 时间:
2015-06-12 22:18:46
阅读次数:
314
1.进程的内核区域包含各种内存对象
进程的内核区域包含各种内存对象,比如:
1.可执行文件代码可以包含各种内存映射,称为代码段(text section)。
2.可执行文件的已初始化全局变量的内存映射,称为数据段(data section)。
3.包含未初始化全局变量,也就是bss段的零页(页面中的信息全部为0值,所以可以用于映射bss段等目的)的内存映射。
4....
分类:
系统相关 时间:
2015-06-08 19:37:01
阅读次数:
193
程序和内存的概念
程序是指在硬盘上的可执行文件。当程序被运行时,需要将可执行文件加载到内存,在内存中的可执行文件形成进程,一个进程(文件)可以同时存在多个进程(内存)。
内存区域的划分
运行程序的时候,需要将可执行文件加载到内存中,形成进程。每个进程占据了一块独立的内存区域,这块内存区域又划分成不同的区域,从低地址到高地址依次为:代码区、只读常量区、全局区/数据区、BSS段...
分类:
系统相关 时间:
2015-06-05 10:19:27
阅读次数:
136
C程序一直由下列部分组成:1)正文段——CPU运行的机器指令部分;一个程序仅仅有一个副本;仅仅读,防止程序因为意外事故而改动自身指令;2)初始化数据段(数据段)——在程序中全部赋了初值的全局变量,存放在这里。3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)...
分类:
其他好文 时间:
2015-06-03 11:41:07
阅读次数:
112
一个进程在内存中的布局如图所示: .text段(正文段)——保存程序所执行的程序二进制文件,CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令。.data段(数据段)——保存程序中所有已初始化的全局变量。.bss段(非初始化数据段)——保存程序中所有未初始化的全...
分类:
编程语言 时间:
2015-05-16 18:01:35
阅读次数:
145
一个进程在内存中的布局如 其中.text段保存进程所执行的程序二进制文件,.data段保存进程所有的已初始化的全局变量,.bss段保存进程未初始化的全局变量。在进程的整个生命周期中,.data段和.bss段内的数据时跟整个进程同生共死的,也就是在进程结束之后这些数据才会寿终就寝。 当一个进程的全.....
分类:
其他好文 时间:
2015-05-14 15:56:49
阅读次数:
169
1.栈 局部变量2.堆 程序运行时动态申请的空间3.BSS段 未初始化的全局变量和静态变量4.数据段 完成初始化的全局变量和静态变量,一级常量字符串,所以数据段又称为静态区5.代码段 程序运行代码所占用的空间常见的动态分配内存分配函数C语言中提供了三个动态分配内存的函数:malloc、ca...
分类:
其他好文 时间:
2015-05-09 20:19:28
阅读次数:
128