您的位置:首页 > 编程语言

程序的内存分配(堆区,栈区,全局区,代码区..)

2017-11-29 20:58 232 查看
在计算机系统中,运行的应用程序的数据都是保存在内存中,不同类型的数据,保存的内存区域不同,包括:

    1、栈区[stack]:由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

    2、堆区[heap]:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式类似于链表。

    3、全局区[静态区]:全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。

    4、文字常量区:存放常量字符穿。程序结束后由系统释放。

    5、程序代码区:存放函数体的二进制代码。

    6、寄存器区:用来保存栈顶指针和指令指针(汇编操作)
https://www.cnblogs.com/xiu619544553/p/5325177.html     数据在内存中的存储
http://blog.csdn.net/youoran/article/details/10990815      C语言中内存分配】(内存占用,int多少字节等问题)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐