程序中的栈、堆、静态存储区
来源:互联网 发布:淘宝小号申请 编辑:程序博客网 时间:2024/05/16 04:31
程序中的栈
栈是现代计算机程序里最为重要的概念之一
栈在程序中用于维护函数调用上下文
函数中的参数和局部变量存储在栈上
栈保存了一个函数调用所需的维护信息
函数调用过程
每次函数调用都对应着一个栈上的活动记录
调用函数的活动记录位于栈的中部
被调用函数的活动记录位于栈的顶部
函数调用时,对应的栈空间在函数返回前是专用的
函数调用结束后,栈空间将被释放,数据不再有效
程序中的堆
堆是程序中一块预留的内存空间,可由程序自由使用
堆中被程序申请使用的内存在被主动释放前将一直有效
C语言程序中通过库函数的调用获得堆空间
-头文件:malloc.H
-malloc–以字节的方式动态申请堆空间
-free–将堆空间归还给系统
系统对堆空间的管理方式
-空闲链表法,位图法,对象池法等等
为什么有了栈还要堆
栈上的数据在函数返回后就被释放掉,无法传到函数内部如:局部变量
程序中的静态存储区
- 静态存储区随着程序的运行而分配空间
- 静态存储区的生命周期直到程序运行结束
- 在程序的编译期静态存储区的大小就已经确定
- 静态存储区主要用于全局变量和静态局部变量
- 静态存储区的信息最终会保存到可执行程序中
阅读全文
0 0
- 程序中的栈、堆、静态存储区
- 程序中的栈、堆和静态存储区
- 专题5-2.程序中的栈,堆,静态存储区(国嵌C语言视频)
- 程序中堆、栈和静态存储区
- 计算机中的堆、栈和静态存储区的区别
- 静态存储区、堆、栈
- 栈 , 堆 , 静态存储区
- 栈,堆,静态存储区
- 【程序5大区】堆、栈、自由存储区、全局/静态存储区、常量存储区
- C++中的堆、栈、自由存储区、全局/静态存储区和常量存储区
- C++中的堆、栈、自由存储区、全局/静态存储区和常量存储区
- C++中的堆、栈、自由存储区、全局/静态存储区和常量存储区
- iOS 程序中的内存分配 栈区 堆区 全局区(静态存储区)
- 静态存储区、代码区、堆、栈
- C++:静态存储区,堆,栈区别
- 堆、栈和静态存储区
- C++堆,栈,静态存储区介绍
- 堆,栈,静态存储区的理解
- HDU 2091 空心三角形(格式控制)
- 全网都找不到的maven-jar-plugin怎么排除不想打包的目录文件内容
- C++ primer 第五版 第六章练习答案
- java 23种设计模式之 迭代器模式(cursor模式)GOF 23-1
- oj粉丝与分割平面
- 程序中的栈、堆、静态存储区
- 对于 红外遥控的信号处理 每一个按键都会有单独的操作【Arduino】
- 【离散数学】1.5可数集合与不可数集合
- [jzoj]3542. 【清华集训2014】冒泡排序(树状数组+读入/输出优化+思维)
- python里使用enum库枚举类型的迭代
- 树的一些简单又重要的概念
- redis分步式锁(上)
- linux下go环境变量配置
- Linux常用指令