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

C/C++程序的内存布局

在这里插入图片描述


  C/C++中程序内存区域划分:

  1. 内核空间:用户无法对这块空间进行读写,该空间是专门用来跑操作系统的。

  2. 栈区:在调用函数时,函数调用空间、函数内局部变量、函数参数的存储单元都是在栈区上创建的,函数调用结束时这些存储单元自动被释放。

  3. 堆区:一般由程序员自主的动态内存开辟和释放,若程序员不释放,程序结束时可能由OS回收。动态分配方式类似于链表。

  4. 数据段:就是之前所说的静态区,主要用于存放全局数据静态数据

  5. 代码段:用于存放代码经过编译链接后的二进制可执行程序只读常量

在这里插入图片描述

  实际上普通的的局部变量是由放栈区分配的空间,而栈区的特点是在上面创建的变量出了作用域就自动销毁。而对于用static修饰的变量存放到了数据段静态区),数据段的特点是在上面创建的变量,直到程序结束才会销毁,故生命周期长。而在堆区上开辟的空间特点是能够自主的调整其大小。


在这里插入图片描述

这份博客👍如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧👀。

相关文章:

  • Vision Transformer论文精读(1/2)
  • python中定时任务apscheduler库用法详解
  • STM32:串口发送+串口接收(内含:查询法+中断法+思路图+代码部分)
  • C语言——经典200道实例(16-20)
  • Python如何快速定位最慢的代码?
  • 【无人机】四旋翼飞行器控制、路径规划和轨迹优化(Matlab代码实现)
  • ESP8266-Arduino网络编程实例-Web服务器(从LittleFS加载页面文件)
  • 【图解CAN总线】-7-Classic CAN 2.0总线网络“负载率”计算(方法二)
  • 3.线性神经网络----动手学深度学习
  • 搭建zabbix4.4.6以及企业微信告警功能实现
  • 文件输入与输出io
  • SpringBoot整合Docker实现一次构建到处运行
  • 程序员眼中的Linux操作系统——初识指令
  • process.env.NODE_ENV与@vue/cli-service及其.env.*默认外部环境配置文件之跨域部署
  • MySQL:用户权限和语言接口
  • 【Linux系统编程】快速查找errno错误码信息
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Android Volley源码解析
  • Apache的基本使用
  • EOS是什么
  • HTML-表单
  • Java到底能干嘛?
  • js ES6 求数组的交集,并集,还有差集
  • miaov-React 最佳入门
  • Redis字符串类型内部编码剖析
  • SpingCloudBus整合RabbitMQ
  • Vue全家桶实现一个Web App
  • 分享几个不错的工具
  • 聊聊directory traversal attack
  • 前端相关框架总和
  • 如何解决微信端直接跳WAP端
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 我感觉这是史上最牛的防sql注入方法类
  • 一天一个设计模式之JS实现——适配器模式
  • 组复制官方翻译九、Group Replication Technical Details
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • $ git push -u origin master 推送到远程库出错
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (4)logging(日志模块)
  • (zhuan) 一些RL的文献(及笔记)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (分布式缓存)Redis哨兵
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)shell中括号的特殊用法 linux if多条件判断
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core 中插件式开发实现
  • .NET开发不可不知、不可不用的辅助类(一)
  • [20140403]查询是否产生日志
  • [C#]winform部署yolov9的onnx模型