当前位置: 首页 > article >正文

c语言笔记 内存管理之栈内存

物理内存和虚拟内存

        在c语言的程序需要内存资源,用来存放变量,常量,函数代码等,不同的内容存放在不同的内存区域,不同的内存区域有着不同的特征。
c语言的每一个进程都有着一片结构相同的 虚拟内存,虚拟内存是 物理内存映射出来的,c程序存储在虚拟内存中在由虚拟内存映射到物理内存,这才真正的使用到物理内存。c程序用到虚拟内存,这方便了内核系统管理。
        每一块虚拟内存存在物理内存的不同区域,每一块都是独立的,都有独立的地址。
程序与虚拟内存的关系图解:

运行时栈

1.环境变量 2.命令行参数 3.局部变量(形参)
一个程序在运行的时候,栈内存是不断变化的,
  1. 每当一个函数被调用栈会往下增长一段距离,函数调用完系统回收内存,栈往上缩短一段距离。
  2. 注意:栈内存的分配和释放,都是由系统规定的,我们无法干预。
  3. 空间有限,尤其在嵌入式环境下。因此不可以用来存储尺寸太大的变量。

http://www.kler.cn/a/579959.html

相关文章:

  • GPT-4 Turbo的重大升级与深远影响
  • Java反射与动态代理:框架设计的基石
  • Android Retrofit 框架注解定义与解析模块深度剖析(一)
  • 利用LLMs准确预测旋转机械(如轴承)的剩余使用寿命(RUL)
  • 【开源】OpenAL、OpenCL、OpenCV 和 OpenGL
  • Git Fast-forward 合并详解:原理、场景与最佳实践
  • 安全保障:渲染101如何守护用户数据?
  • BT-Basic函数之首字母C
  • 数据结构第六节:二叉搜索树(BST)的基本操作与实现
  • C++设计模式-简单工厂模式:从原理、应用、实践指南与常见问题和解决方案深度解析
  • 洛谷P1109 学生分组
  • [Unity3D] 动态立方体贴图系统
  • Android JNI性能优化与字符串加载实践
  • ctf-WEB: 关于 GHCTF Message in a Bottle plus 与 Message in a Bottle 的非官方wp解法
  • 我的GraphQL工具实战:用Apipost提升开发效率的真实体验
  • 【由技及道】API契约的量子纠缠术:响应封装的十一维通信协议(全局的返回结果封装)【人工智障AI2077的开发日志012】
  • vue3学习-3(逻辑复用)
  • Linux的基础操作指令
  • 《WebForms 实例》
  • CentOS 7上安装Kubernete(k8s)的操作步骤