首页 > 系统相关 >一、内存分区模型

一、内存分区模型

时间:2024-07-04 18:59:34浏览次数:18  
标签:释放 模型 分区 程序员 存放 内存 new 堆区

1.概述

C++程序在执行时,将内存方向划分为4个区域。

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

全局区:存放全局变量,静态变量,常量

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

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

2.程序运行前

编译后产生了exe可执行文件,未执行该程序前分为两个区域。

代码区

        存放CPU执行的机器指令

        代码区是共享的,共享的目的是对频繁被执行的程序,只需要在内存中有一份代码即可

        代码区是只读的,防止程序意外修改他的指令

全局区

        全局变量和静态变量(static)存放,局部常量和局部变量在另外的地方

        还包含常量区,字符串常量和全局常量(const修饰)也在这里

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

3.程序运行后

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

注意:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放

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

在C++中主要用new在堆区中开辟内存

4.new操作符

在C++中主要用new在堆区中开辟内存

堆区开辟的数据由程序员手动开辟,手动释放,释放利用操作符delete

语法:  new 数据类型

利用new创建的数据,会返回该数据对应的类型指针

利用new创建数据

int *p = new int (10);    delete p;//完成删除

利用new创建数组

 int *p = new int[10];//包含10个整形数据的数组

删除已经创建的数据 

delete[] p; //完成删除

标签:释放,模型,分区,程序员,存放,内存,new,堆区
From: https://blog.csdn.net/weixin_62492456/article/details/140187318

相关文章

  • 内存管理-14-内核文档翻译-1-reserved-memory.txt
    本文翻译自:msm-5.4/arch/arm64/boot/dts/vendor/bindings/reserved-memory/reserved-memory.txt***Reserved内存区域***保留内存被指定为/reserved-memory节点下的一个节点。操作系统应将保留内存排除在正常使用之外,可以创建子节点来描述特定的保留(从正常使用中排除)内存区域......
  • css盒子模型
    1.(内容)盒子组成盒⼦属性(Boxproperties)margin外边距border边框  padding的外边缘与margin的内边缘之间,默认值为0padding内间距 width&height内容区域宽⾼设置高度 因为父元素没有高度,所以他设置百分比时不能出现边框属性border-wi......
  • 第四章 对象的实例化内存布局与访问定位
    对象的实例化内存布局与访问定位对象的实例化 对象创建的方式(1)new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法(2)Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为public(3)Cons......
  • 一文带你看懂什么是营销归因模型及SaaS企业的应用
    在数字化时代,营销活动的多样性和复杂性使得评估其效果成为一项挑战。营销归因模型应运而生,为SaaS企业等提供了科学、系统的评估工具。本文将简要介绍什么是营销归因模型,阐述其带来的好处,并探讨SaaS企业可以采用的营销归因系统。什么是营销归因模型?营销归因模型是一种方法论,......
  • golang 内存逃逸 你应该知道的知识
    逃逸分析目录1.为什么要了解内存逃逸2.什么是逃逸分析3.内存逃逸的影响-性能和稳定性4.内存逃逸的原因5.内存逃逸的检测6.如何避免内存逃逸7.内存逃逸代码示例原文链接:一文弄懂Golang中的内存逃逸1.为什么要了解内存逃逸-内存逃逸是Go语言编程中一个特别需要注意的问......
  • 对标 GPT-4o,法国开源实验室发布多模态大模型 Moshi;腾讯汤道生:AI 领域不应只关注大模型
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,......
  • 京东面试 rockmq是推消息还是拉消息?他的消息模型是啥?
    在消息队列系统中,消费者模型(即消费者获取消息的方式)通常分为“拉”(pull)模式和“推”(push)模式。这两种模式在性能和实用性上有各自的优势和局限性,特别是在处理不同吞吐量和实时性需求的场景中。RocketMQ的推拉模型RocketMQ本质上使用的是拉模式,但它通过长轮询等技术实现了......
  • LLM大模型: RAG的上下文语义retrieval — RAPTOR
    1、RAG有很多优点,但是缺点也很明显,其中一个硬伤就是:只会“断章取义”!如果文本有明确的答案,现有的retrieve方式大概率能找到,但是如果文本没有明确的答案了?比如android逆向和windows逆向,哪个更有钱途?很多资料会介绍android逆向、windows逆向的原理和技术细节,但是没有哪个更有钱......
  • cpu内存硬盘之间的工作原理!
    在现代计算机系统中,CPU(中央处理器)、内存(RAM)和硬盘(硬盘驱动器或固态硬盘)是三大核心组成部分。它们之间的协同工作关系直接影响整个计算机系统的性能和效率。为了更好地理解计算机的工作原理,CPU、内存和硬盘的基本功能及它们之间的相互交互。这三者的工作原理及其之间的关系。CP......
  • 一文为你深度解析LLaMA2模型架构
    本文分享自华为云社区《【云驻共创】昇思MindSpore技术公开课大咖深度解析LLaMA2模型架构》,作者:Freedom123。一、前言随着人工智能技术的不断发展,自然语言处理(NLP)领域也取得了巨大的进步。在这个领域中,LLaMA展示了令人瞩目的性能。今天我们就来学习LLaMA2模型,我们根据 昇思M......