学习笔记:内存四区

news2024/12/23 5:33:28

内存分区模型

1内存分区模型

C++程序在执行I将内存大方向划分为4个区域

●代码区:存放函数体的二进制代码,由操作系统进行管理的

●全局区:存放全局变量和静态变量以及常量

●栈区:由编译器自动分配释放存放函数的参数值局部变量等

●堆区:由程序员分配和释放若程序员不释放程序结束时由操作系统回收
 

不同区域存放不同数据,变成更加灵活

代码区和全局区

1.1程序运行前

在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域

代码区:

存放CPU执行的机器指令

代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可。代码区是只读的,使其只读的原因是防止程序外错误地修改了它的指令

从实践中可知,我们一般只能运行exe程序,比如QQ,但不能修改他的指令

全局区:

全局变星和静态变量存放在此

全局区还包含了常量区,字符串常量和其他常量也存放在此

其他常量如const修饰的常量

该区域的数据在程序结束后由操作系统释放

全局区

· C++中在程序运行前分为至局区和代码区·代码区特点是共亨和只读
 ·全局区中存放全局变量、静态变量、常量

·常量区中存放const修饰的全局常量和字符串常量

栈区 

 void test (int b) 形参b也会被放在栈区

 

 即动态内存分配

动态分配单个元素,数组,结构体....

 结果都是10

不释放堆区内存,数据一直存在

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【WSN布局】基于LICHTENBERG算的多目标传感器选择和放置优化问题研究附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

如何改变胆小怕事的性格?

胆小怕事 就是指一个人做事总是十分胆怯,畏畏缩缩,举手投足也不够大气,经常要看别人的脸色,害怕麻烦上身,对强势的人也会显得唯唯诺诺,战战兢兢。胆小怕事 是某种心理问题的表现,或者说性格缺陷…

基于Q-learning方法的地铁列车时刻表重新调度

文章信息《Metro Train Timetable Rescheduling Based on Q-learning Approach》是发表在2020 IEEE 23rd International Conference on Intelligent Transportation Systems (ITSC)上的一篇文章。摘要在地铁系统中,不可预测的干扰会影响正常运行,给乘客带…

什么是短网址?如何调用接口生成短地址?

随着网络应用的深入和普及,网址资源越来越少了,长尾网址也派上用场了,只是网址太长不方便识别与记录。因此,就有了短网址替代长网址的技术接口。 随着SEO的重要性越来越明显,在推广的时候如果把网页链接缩短可以获得更…

【wireshark】如何获取一个设备的IP地址

问题 开发中往往会出现无法知道设备正确的IP地址,从而无法连接到设备。 解决方式: 使用软件工具wireshark来获取设备IP地址。 可以实现不同网段捕获设备IP 具体流程: 1. 下载wireshark抓包程序 https://www.wireshark.org/download.htm…

MySQL日志(undo log 和 redo log 实现事务的原子性/持久性/一致性)

日志的重要性 日志绝对是数据库的核心. 持久化的日志记录了各种重要的信息.数据的恢复需要依赖日志。 慢查询sql语句需要用到慢查询日志。以及错误日志中保存着mysqld数据库服务端在启动过程中发生的重大错误信息... 数据库重要组成 本质上来说是一个文件系统 (两大重要组…

PHP+MySQL基于thinkphp的企业信息销售展示系统的设计

公司企业网站,是一个供为企业推广的平台,是完全的,高速的,开放的,其核心思想是提供一个以自然语言为主的用户界面,让用户能够更好的刚加方便快捷的管理物流信息的一个渠道和平台。本课题的开发工具可以使用PHP开发语言和MySQL数据进行的开发。 该系统的基本功能包括用户注册登录…

JAVA 设计模式篇

JAVA 设计模式篇1、UML类图2、设计原则2.1、开闭原则2.2、里氏代换原则2.3、依赖倒转原则2.4、接口隔离原则2.5、迪米特法则2.6、合成复用原则3、设计模式3.1、单例模式3.1.1、单例模式实现——饿汉式3.1.1.1、静态变量实现3.1.1.2、静态方法实现3.1.1.3、枚举方式3.1.2、单例模…

GRPC远程调用

FAQ | gRPC1. gRPC原理 FAQ | gRPC Asynchronous-API tutorial | C | gRPC 1.1 什么是RPC RPC 即远程过程调用协议(Remote Procedure Call Protocol),可以让我们像调用本地对象一样发起远程调用。RPC 凭借其强大的治理功能,成…

Linux 中的文件简单说明

Linux 中的文件简单说明 作者:Grey 原文地址: 博客园:Linux 中的文件简单说明 CSDN:Linux 中的文件简单说明 说明 本文基于 CentOS 7 根目录(/)下文件夹主要作用 [rootlinux /]# ll / total 16 lrwxrwxrwx. 1 root root…

VMOS虚拟机开源,游戏安全面临新挑战

相信大家对虚拟机并不陌生,一台设备可以模拟出多个操作系统,完美解决了不同场景下设备限制问题,还节约了购买软硬件设备的成本,为工作和生活提供了不少便利,得到了广泛的应用。 而虚拟机技术却被游戏黑灰产所利用&…

全球约有 150 亿台设备在运行 Java,收费后还能用吗?

据估算,全球约有 150 亿台设备在运行 Java™。约900万 Java 程序员.... https://www.oracle.com/java/technologies/downloads/archive 一、Java8及之前的版本均免费 我们可以看到上图中绿色的部分均是免费版本大家可以随便下载随便使用。 二、最后的免费版本 jd…

将光耦合进入单模光纤的最佳工作距离

摘要 光纤是现代光学系统中最通用的部件之一。它们最重要的特点之一是它们能够在远距离(甚至几公里)内以极低的损耗传输光能。另一方面,以一种能够达到尽可能高的效率的方式将光耦合到光纤中通常是一项非常精细的需求:例如&…

美苏太空竞赛历年卫星火箭发射以及历史事件介绍

1957 时间苏联美国折叠时间7月16日在与政府官员的会晤中,科罗廖夫和格鲁什科提出了开发超重型火箭的想法。美国海军对先锋号火箭进行试射。5月1日10月4日卫星号火箭发射了斯普特尼克1号,即第一颗人造卫星。美国海军对先锋号火箭进行试射。10月23日11月3…

ArcGIS API4.X + API文档 本地部署(Tomcat)

前言: js.arcgis.com有时候不太稳定,导致项目或者自己测试代码需要等待远程资源请求,体验感及其不好,能自己掌控的资源最好就别去拿在线的,当然服务器稳定就另当别论。(所以本地部署有两种含义:…

ModStartCMS v5.3.0 任务调度记录,模块市场优化

系统介绍 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰…

在vue项目中下载swiper出现:Do not use ‘new’ for side effects报错问题

我报错的情况是:我在单文件组件vue文件中使用new Swiper,报了两个错误,图示: 第一个错误是:‘Swiper’ is not defined 第二个错误是:Do not use ‘new’ for side effects 解决办法: &#x…

【软件测试】7年资深带你详探什么是测试开发?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 在一些大公司里&…

数据结构初阶--二叉树介绍(基本性质+堆实现顺序结构)

树的基本概念和结构 树的相关概念 节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为2叶节点或终端节点:度为0的节点称为叶节点; 如上图:D、F、G、H为叶节点非终端节点或分支节点&#xff1…

Unity笔记(13):Android Movement of Characters[2D]

目录 1、搭建一个测试场景 2、建立画布设置移动按钮 3、编写脚本绑定按钮 AxisTouchButton :ButtonHandler : 4、编写脚本绑定角色 原来的按键移动 修改为触摸按钮 5、导出为APK文件,手机下载进行测试 1、搭建一个测试场景 2、建立画…