【C语言】代码规范 内存管理
来源:互联网 发布:chrome mac版 编辑:程序博客网 时间:2024/06/05 18:18
总结查找资料 总结内存申请释放相关知识点如下。
参考:http://blog.csdn.net/chenyiming_1990/article/details/9476181
一、程序内存的组成:
1. 一共由3个部分组成:
BSS段 : 不在可执行文件中,由系统初始化
包含程序中未初始化的全局变量和未初始化的static变量。 属于静态内存分配。即程序一开始就将其清零了。
BSS段只保存没有值的变量,所以事实上它并不需要保存这些变量的映像。运行时所需要的BSS段大小记录在目标文件中,
但BSS段并不占据目标文件的任何空间。
data段: 在可执行文件中,由系统从可执行文件中加载
data段包含三个部分:heap(堆)、stack(栈)和静态数据区。
1)堆(heap)
堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。
malloc等函数-----堆被扩张
free等函数-----堆被缩减
2)栈(stack)
一个寄存、交换临时数据的内存区。
stack段存放函数内部的变量、参数和返回地址,
其在函数被调用时自动分配,访问方式就是标准栈中的LIFO方式。
3)静态数据区 在可执行文件中,由系统从可执行文件中加载
已初始化的全局变量、静态变量和常量。
text 段:
指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域属于只读。
可参考示例
http://www.cnblogs.com/coder2012/p/3150757.html
二、
三、
- 【C语言】代码规范 内存管理
- C语言代码规范
- C语言代码规范
- C语言代码规范
- objective-c 内存管理规范
- C语言内存管理
- C语言内存管理
- C语言内存管理
- C语言内存管理
- C语言-内存管理
- C语言内存管理
- C语言内存管理
- c语言 内存管理
- c语言内存管理
- C语言内存管理
- C语言内存管理
- C语言 内存管理
- C语言,内存管理
- Tensorflow一些常用基本概念与函数
- 十进制数与ASCII码的转换
- 程序员面试题总结一:排序算法
- SLAM学习笔记(三)特征提取
- 视图与URLconf
- 【C语言】代码规范 内存管理
- 让无数社群为自己打工?你要用好这6大驱动力
- spark原理入门详解:包括生态、特点、概念等
- 2017年高校网络信息安全管理运维挑战赛部分题解
- JSP笔记一
- 带缩略图的图片切换
- 界面原型工具 pencil
- 日记(周中)
- android 实现延迟1秒界面发生跳转