1.内存管理
1.1 进程中的内存区域划分
代码区 只读常理区 全局区 BSS 堆 栈
1.2 字符串存储形式之间的比较
字符指针,字符数组,字符动态内存
1.3 虚拟内存管理技术
Unix/Linux系统总的内存都是采用虚拟内存管理技术进行管理,即:每个进程都有0~4G的内存地址
(虚拟的并不是真实存在的),由操作系统负责把内存...
分类:
其他好文 时间:
2015-06-05 00:45:51
阅读次数:
125
C++的内存划分为栈区、堆区、全局区/静态区、字符串常量和代码区。 这里去掉自由存储区,增加了代码区,理由会在下面讲到。 栈区:由系统进行内存的管理。 说明:主要存放函数的参数以及局部变量。栈区由系统进行内存管理,在函数完成执行,系统自行释放栈区内存,不需要用户管理。整个程序的栈区的大小可以在编译器...
分类:
编程语言 时间:
2015-06-01 13:06:22
阅读次数:
105
对block调用复制,有以下几种情况:1.对全局区的block调用copy,会返回原指针,并且这期间不处理任何东西(至少目前的内部实现是这样);2.对栈上的block调用copy,每次会返回新复制到堆上的block的指针,同时,所有__block变量都会被复制至堆一份(多次拷贝,只会生成一份)。3....
分类:
其他好文 时间:
2015-05-18 14:36:44
阅读次数:
95
内存四区:1.全局区 :常量和全局变量,操作系统管理 -- 常量 + 静态变量 2.代码区 :不可见 3.堆区 : 手工分配(开辟)内存,要是不free的话,这部分内存将被永远保留(关机之前),这就是内存泄露 4.栈区 : 程序局部变量、临时变量,以一个函数为单位 -- 变...
分类:
其他好文 时间:
2015-05-16 20:06:40
阅读次数:
115
内存管理:栈区 [stack]:由编译器自动分配并释放,一般存放函数的参数值,局部变量等堆区 [heap]:由程序员分配和释放,如果程序员不释放,程序结束时,可能会由操作系统回收全局区(静态区) [static]:全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量存放在一块区域,未初始...
分类:
其他好文 时间:
2015-05-16 16:20:14
阅读次数:
105
C++堆和栈的分配腾讯、金山笔试常考栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,注意它与数据结构中的堆是两回事,分配方式类似于链表。全局区(静态...
分类:
编程语言 时间:
2015-05-09 23:35:17
阅读次数:
175
When a Block literal is written where there are global variables When the syntax in a Block literal doesn’t use any automatic variables to be cap....
分类:
其他好文 时间:
2015-05-07 23:34:11
阅读次数:
160
一般认为在c中分为这几个存储区1栈 - 有编译器自动分配释放2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束释放...
分类:
其他好文 时间:
2015-05-01 18:39:59
阅读次数:
138
内存四区分配图:---------------------| 堆区 |---------------------| 栈区 |---------------------| 全局区 |---------------------| 代码区 | ---------...
分类:
其他好文 时间:
2015-04-27 23:37:42
阅读次数:
157
一、预备知识—程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于
数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与
数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(...
分类:
编程语言 时间:
2015-04-27 09:56:07
阅读次数:
110