首页 > 系统相关 >C++的内存模型

C++的内存模型

时间:2023-02-23 22:15:39浏览次数:33  
标签:栈区 常量 代码 C++ 内存 全局 模型

C++的内存包含4个大区,它们分别是代码区、全局区、栈区和堆区。

以下将对它们的分区进行进一步的阐述。

  • 代码区:对于一段代码,首先要经过编译之后生成可执行文件才能执行,在Windows下通常为以.exe结尾的文件,而C++将这样的可执行代码单独存放在内存的一个固定区域,也就是说代码区在程序执行前就已经存在。
  • 全局区:全局区存放的内容包括静态变量、全局变量、全局常量以及字符串常量。请注意全局常量是指在函数体外使用const申明的常量。与代码区相同的是,全局区在代码执行之前就已经存在。
  • 栈区:栈区包含的内容有局部变量和形参值,它由编译器进行管理。值得注意的是,栈区在函数执行完成后依然会保留一次,当再次访问后编译器将会把它释放。在函数执行完成后继续访问局部变量是非法的,这里只是为了阐明C++对栈区的管理才进行这样的操作说明。
  • 堆区:堆区由程序员进行管理,如果程序员并未处理,那么它将在程序执行完毕后释放。使用关键词new可以向堆申请存储区。

标签:栈区,常量,代码,C++,内存,全局,模型
From: https://www.cnblogs.com/meetalone/p/17149543.html

相关文章

  • jvm-内存调优
    jvm-内存调优1.jvm内置命令jps列出正在运行的jvm虚拟机进程,并显示虚拟机执行朱磊名称以及这些进程的本地虚拟机唯一ID-q:仅输出进程id-m:输出main方法的参数-......
  • TCGA代码分析流程 - 3.3 生存模型:Lasso回归
    LASSO回归什么是Lasso回归Tibshirani(1996) 引入了LASSO (LeastAbsoluteShrinkageandSelectionOperator)模型,用于参数的选择和收缩。当我们分析大数据时,这个模型......
  • C++学习(2)STL八股文
    1、STL实现原理及其实现STL提供了六⼤组件,彼此之间可以组合套⽤,这六⼤组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。STL六⼤组件的交互关系:a.容......
  • C++问题集
    const函数名后,加const使类的成员函数,不能修改类内成员。mutable可以突破const限制!在函数后面加const只能在类的成员函数中实现!普通的函数是无法进行这样的操作的!vo......
  • C/C++图书管理系统[2023-02-23]
    C/C++图书管理系统[2023-02-23](辅修)高级语言程序设计课程设计图书管理系统设计并实现一个学校图书馆的图书管理系统。具体要求:1、 图书信息和借阅信息等保存在文本文......
  • C++主函数参数
    学习C++主函数的参数输入,用于从commandline中读取参数,下面以读取视频文件为例进行说明#include<iostream>#include<fstream>#include<string>#include<opencv2/op......
  • JVM内存模型深度剖析与优化
    JVM整体结构以及内存模型publicclassMath{publicstaticfinalintinitData=666;publicstaticUseruser=newUser();publicintcompute(){//一......
  • Django 模型 Meta 选项详解
    1.了解Meta内部类每个模型类(Model)下都有一个子类Meta,这个子类就是定义元数据的地方。Meta类封装了一些数据库的信息,称之为Model的元数据。Django会将Meta中的......
  • 03 JVM内存泄漏排查思路
    一现象告警系统发出接口波动告警,JVM监控显示内存回收不掉,长时间不重启服务应用卡顿二产生原因大文件读取、全局集合对象、数据库select没有where导致全表数据写入内存......
  • Blender如何设置模型中心点
    推荐:将 ​​NSDT场景编辑器​​ 加入你的3D开发工具链。在使用Blender建模的时候,有时候会导入一些从别的地方**过来的模型,这时候就会遇到一个问题,模型放到场景中时与鼠标......