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

一图打尽C++内存分区(分段)

一图打尽C++内存分区(分段)

直接上图:

在这里插入图片描述

  1. 栈区(Stack Segment)
    • 位于内存的高地址部分。
    • 用于存储函数调用时的局部变量、函数参数和返回地址。
    • 内存地址从高向低增长。
  2. 堆区(Heap Segment)
    • 位于栈区之下。
    • 用于动态分配的内存(如通过mallocnew分配的内存)。
    • 内存地址从低向高增长。
  3. 全局/静态区(Global/Static Segment)
    • 包括已初始化数据段(.data)和未初始化数据段(.bss)。
    • 存储全局变量和静态变量。
  4. 常量区(Constant Segment)
    • 存储只读常量数据(如字符串字面量)。
    • 通常与代码段合并在一起。
  5. 代码段(Text Segment)
    • 位于内存的低地址部分。
    • 存储程序的可执行代码和只读常量。

注意:

  • 常量区和代码段部分时候会一概而论,两者都存储只读数据。
  • 虚函数表存放在常量区,代码段,虚函数表是编译阶段生成的。
  • 未初始化的全局变量和静态变量
    • 存储在**未初始化数据段(.bss)**中
    • 这些变量在程序启动时被初始化为零
  • 已初始化的全局变量和静态变量
    • 存储在**已初始化数据段(.data)
    • 存储在**已初始化数据段(.data)**中
    • 这些变量在程序启动时被初始化为指定的值

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣9.2
  • World of Warcraft [CLASSIC][80][Grandel]Sapphire Hive Drone
  • Nvidia股价前景引投资者情绪波动:杠杆ETF数据透视市场风向
  • k8s集群搭建
  • 工业软件架构4:(QT和C++实现)
  • 二十五、go语言的通道
  • 代码随想录算法训练营第32天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 8.28路虎女事件
  • 掌握 JavaScript 解构赋值的指南
  • 蜜罐网络MHN安装过程中的坑
  • Pytorch实现多层LSTM模型,并增加emdedding、Dropout、权重共享等优化
  • Windows 下载安装RabbitMQ
  • 干货分享:推荐四大在线翻译神器!
  • 26. 在集合中删除元素时,为什么使用Iterator.remove()而不是Collection.remove()?
  • GeoScene Pro教程(004):GeoScene Pro制作与使用矢量切片包
  • Computed property XXX was assigned to but it has no setter
  • ES6系统学习----从Apollo Client看解构赋值
  • HTML-表单
  • HTTP--网络协议分层,http历史(二)
  • Js基础——数据类型之Null和Undefined
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Promise面试题2实现异步串行执行
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 产品三维模型在线预览
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 基于组件的设计工作流与界面抽象
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • #WEB前端(HTML属性)
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (floyd+补集) poj 3275
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转) ns2/nam与nam实现相关的文件
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .gitignore文件_Git:.gitignore
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Core中Emit的使用
  • .net 微服务 服务保护 自动重试 Polly
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET4.0并行计算技术基础(1)
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NET开发不可不知、不可不用的辅助类(一)
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • ??javascript里的变量问题
  • @antv/g6 业务场景:流程图
  • [2016.7 day.5] T2
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [AIGC codze] Kafka 的 rebalance 机制
  • [Android Studio 权威教程]断点调试和高级调试
  • [Android] Android ActivityManager
  • [ANT] 项目中应用ANT
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)