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

73.【C语言】C/C++的内存区域划分

目录

1.内存里的几个区域

2.示意图

3.解释


1.内存里的几个区域

除了耳熟能详的栈区,堆区,静态区,还有内核空间,内存映射段,数据段,代码段

2.示意图

3.解释

栈区(stack area):局部变量,函数参数,返回数据,返回地址

内存映射段:将文件映射到内存

映射的含义:

如果看过李忠老师的 《x86汇编语言 从实模式到保护模式 第二版》,其中写到了可以操作B800:0000~BFFF:000F的虚拟地址来向80*25的显示屏写入可视的文字

可以这样做的原因是:

(以下摘抄自P67~P68)

      为了给出要显示的字符,处理器需要访问显存,把字符的ASCI码写进去。但是,显存是位于显卡上的,访问显存需要和显卡这个外围设备打交道。同时,多一道手续自然是不好的,这当中最重要的考量是速度和效率。想想看,你让人传话给父母,和自己亲自往家里打电话,花费的时间是不一样的。为了实现一些快速的游戏动画效果,或者播放高码率的电影,不直接访问显在是办不到的。

      为此,计算机系统的设计者们,这些敢想敢干的人,决定把显存映射到处理器可以直接访问的地址空间里,也就是内存空间里

--------------------------------------------------------------------------------------------------------------------------

处理器-->显卡-->显存变成处理器-->内存(含映射的显存)

堆区(heap area):动态内存管理(malloc函数,realloc函数,calloc函数,free函数)

数据段(data  segment)(静态区):全局变量(如全局变量),静态数据(如静态变量(由static修饰))

代码段(code segment):存放函数体(类成员函数和全局函数)的二进制代码和只读常量(如常量字符串)

相关文章:

73.【C语言】C/C++的内存区域划分

目录 1.内存里的几个区域 2.示意图 3.解释 1.内存里的几个区域 除了耳熟能详的栈区,堆区,静态区,还有内核空间,内存映射段,数据段,代码段 2.示意图 3.解释 栈区(stack area):局部变量,函数参数,返回数据,返回地址 内存映射段:将文件映射到内存 映射的含义: 如果看过李忠…...

k8s 中存储之 hostPath 卷

目录 1 hostPath 卷介绍 2 hostPath 卷实际应用操作 2.1 创建 pod 资源类型 2.2 修改清单文件增加 hostPath 对应的参数配置 2.3 查看是否创建 卷 和 pod 2.4 创建发布文件测试是否正常访问 1 hostPath 卷介绍 EmptyDir中数据不会被持久化,它会随着Pod的结束而销…...

Cherno游戏引擎笔记(73~90)

------- scene viewport ---------- 》》》》做了两件事:设置视口和设置相机比例 》》》》为什么要设置 m_ViewportSize 为 glm::vec2 而不是 ImVec2 ? 因为后面需要进行 ! 运算,而 ImVec2 没有这个运算符的定义,只有 glm::vec2 有这个运算…...

helm 测试卸载或删除(redis)

作者:程序那点事儿 日期:2024/02/07 18:30 查看redis 集群实例 kubectl get all -n redis 卸载集群实例 helm uninstall redis -n redis 删除pvc kubectl get pvc -n redis kubectl delete pvc redis-data-redis-master-0 redis-data-redis-replicas…...

关于Qt音乐播放器进度条拖拽无用的问题解决方案

在使用Qt编写音乐播放器的时候,进度条关联播放音乐基本是必须的。那么在设计的过程中你可能会碰到一个奇怪的问题就是拖拽进度条的时候,可能会报错如下: 然后音乐就卡着不动了。。。 connect(ui->volume_toolButton,&VolumeToolBtn::…...

Redis:初识Redis

Redis:初识Redis Redis 介绍分布式架构Redis特性安装Redis Redis 介绍 在官网中,是如下介绍Redis的: in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and messag…...

【React】增量传输与渲染

增量传输 增量传输是一种高效的文件传输方式,其核心原理在于只传输文件中发生变化的部分,而不是整个文件。以下是增量传输的详细解析: 定义与原理: 增量传输通过比对原始文件和目标文件,找出两者之间的差异部分&#…...

【回眸】Tessy 单元测试软件使用指南(四)常见报错及解决方案与批量初始化的经验

前言 分析时Tessy的报错 1.fatal error: Tricore/Compilers/Compilers.h: No such file or directory 2.error: #error "Compiler unsupported" 3.warning: invalid suffix on literal;C11 requires a space between literal and string macro 4.error: unknown…...

2024 - 10 :生物药学: 如何获取对应核心靶点基因的激酶

如何获取对应核心靶点基因的激酶 步骤 1:收集蛋白质信息 获取 UniProt ID: 对于每个基因,使用 UniProt 数据库获取其对应的蛋白质信息,包括 UniProt ID、序列和功能注释。UniProt 网站:https://www.uniprot.org/ 示…...

STM32 HAL库UART查询方式实例

本文中介绍USART编程涵盖了三种主要方法,详细介绍STM32F407微控制器结合HAL库,通过UART的查询方式来实现一个实用的密码验证程序。提示用户键入一个字符作为密码。只有当用户精准地输入字符6时,系统才会反馈“密码正确”的确认信息。反之&…...

数据结构--线性表双向链表的实现

目录 思路设计 总体思维导图 插入部分 头插法尾插法 任意位置插入 删除部分 头结点 尾节点 中间节点 只有头结点且删除的就是头结点 ​编辑 清空链表部分 遍历清空链表的所有节点 不遍历清空 各部分代码 Main部分 MyListedList部分 IndexOutOfException部分 …...

第一个Flutter应用(一)

1、创建项目 1.1 新建 1.2 选择Flutter SDK的位置 1.3 项目名称 英文单词加下划线起名规范,其他默认即可。 1.4 点击运行 发生报错显示我们的JAVA版本不符合 1.5 更改版本设置 1.6 再次启动项目 2、分析页面代码 以下是lib/main.dart的源代码(为了阅…...

批量查询快递单号物流信息:高效掌握最后更新动态

在电商和物流行业蓬勃发展的今天,快递单号的物流信息追踪显得尤为重要。对于商家和客户来说,了解包裹的最后更新物流状态是确保货物安全、及时送达的关键。本文将介绍如何批量查询快递单号的物流信息,帮助您高效掌握每个包裹的最新动态。 1运…...

随着硬件水平的提升,LabVIEW有哪些过去的编程方法被淘汰掉了

随着硬件水平的不断提升,尤其是处理器性能、存储能力、通信速度等方面的飞跃,LabVIEW的一些早期编程方法逐渐被更高效、现代的编程技术所取代。以下是一些随着硬件升级而逐步淘汰的LabVIEW编程方法和技术: 1. 低效的数据流传输方式 过去由于…...

Leetcode 206.反转链表

题目链接:206. 反转链表 - 力扣(LeetCode) 题目描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 解题思路…...

基于springboot和vue.js 养老院管理系统设计与实现

博主介绍:专注于Java(springboot ssm springcloud等开发框架) vue .net php phython node.js uniapp小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆…...

高效数据处理:MapReduce与Hive的实战应用

文章目录 hive分析汇总互联网日志分析1.项目需求2.数据说明3.算法思路 用户电影推荐1.项目需求2.数据说明3.算法思路4.解题步骤 简单数据统计WordCount数据说明 疫情数据分析1.项目需求2.数据说明step1:创建ods层数据表step2:创建dwd层数据表step3:创建d…...

【含开题报告+文档+PPT+源码】基于springboot的迎新系统

开题报告 大学迎新系统是为了满足大学在新生入学时的信息化处理需求而开发的系统。在传统方式下,我们新生接待工作是需要新生报名表,就使得我们需要耗费大量的纸张,这将造成资源浪费。在接待新生的时候需要让新生勾选、填写大量的表格&#…...

C#-委托delegate

C#-委托delegate 通常情况下,函数内部需要调用其他函数来实现代码的重用,但这样有一个问题: 如果需要更换所调用的函数则需要对该函数的定义再次修改, 事实上,在程序运行过程中,函数也是作为一个存储在堆中…...

编译Thingsboard3.7.0的过程记录

1、首先去掉test测试&#xff0c;否则会有一堆问题&#xff0c;pom.xml修改如下&#xff1a; <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${surefire.version}</ve…...

装机解惑:Bios中的Secure Boot与CSM,为何相爱相杀?

1. Secure Boot与CSM&#xff1a;现代PC的引导之争 刚装好的新电脑突然黑屏&#xff0c;这种经历估计不少DIY玩家都遇到过。上周我就帮朋友处理了这么个案例&#xff1a;他为了省钱继续用老显卡GTX650ti&#xff0c;结果在新配的13代酷睿主机上死活点不亮屏幕。这背后其实是UEF…...

基于Shell与Python的本地化GPT服务部署与架构实践

1. 项目概述&#xff1a;一个基于Shell与NLP的轻量级GPT服务接口最近在折腾一些自动化脚本和智能对话的集成&#xff0c;发现了一个挺有意思的需求&#xff1a;能不能在命令行里&#xff0c;或者通过一个简单的HTTP请求&#xff0c;就能调用类似GPT这样的语言模型&#xff0c;来…...

Deepin Boot Maker:Linux启动盘制作的智能化解决方案

Deepin Boot Maker&#xff1a;Linux启动盘制作的智能化解决方案 【免费下载链接】deepin-boot-maker 项目地址: https://gitcode.com/gh_mirrors/de/deepin-boot-maker 在Linux系统安装领域&#xff0c;传统命令行操作的门槛让许多用户望而却步。Deepin Boot Maker作为…...

告别复制粘贴!用Keil MDK 5.27为GD32F450搭建专属工程模板(附完整文件结构)

打造高效嵌入式开发工作流&#xff1a;基于Keil MDK 5.27的GD32F450工程模板设计指南 在嵌入式开发领域&#xff0c;重复劳动是效率的最大敌人。每次启动新项目时&#xff0c;开发者往往需要花费大量时间在基础环境搭建、文件结构组织和编译配置上。这种低效的工作模式不仅消耗…...

本周 GitHub 最热项目全解析!Star History 2026年第20周(5月8日-14日)排行榜深度盘点

统计周期&#xff1a;2026年5月8日 – 5月14日 数据来源&#xff1a;star-history.com 前言 每周的 GitHub Trending 就像开发者世界的晴雨表——什么技术方向最火、哪些工具最受追捧、哪个生态最具活力&#xff0c;都能从这份排行榜上一目了然。本周&#xff08;2026年5月8日…...

【小白也能懂得操作】解决 OpenClaw 操作电脑受限问题详细指南(含安装包)

OpenClaw 没有电脑操作权限怎么办&#xff1f;完整解决方法 【新人点击链接直接下载openclaw安装包】 OpenClaw 在运行时需要对系统进行文件读写、键鼠模拟、窗口控制等操作&#xff0c;如果出现无法操作电脑、提示没有权限的问题&#xff0c;会直接影响自动化功能使用。本文…...

3步解决Beyond Compare 5评估模式错误:密钥生成与完全激活指南

3步解决Beyond Compare 5评估模式错误&#xff1a;密钥生成与完全激活指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 当Beyond Compare 5的30天评估期结束后&#xff0c;软件会显示"评…...

3个技巧让LaTeX参考文献自动符合GB/T 7714国标:告别手动排版烦恼

3个技巧让LaTeX参考文献自动符合GB/T 7714国标&#xff1a;告别手动排版烦恼 【免费下载链接】gbt7714-bibtex-style BibTeX styles for Chinese National Standard GB/T 7714 项目地址: https://gitcode.com/gh_mirrors/gb/gbt7714-bibtex-style 还在为毕业论文、学术论…...

MATLAB集成大语言模型:架构设计与工程实践指南

1. 项目概述&#xff1a;当MATLAB遇见大语言模型如果你和我一样&#xff0c;是个长期泡在MATLAB环境里的工程师或研究员&#xff0c;面对这两年大语言模型&#xff08;LLM&#xff09;的狂潮&#xff0c;心里可能既兴奋又有点“隔岸观火”的疏离感。我们习惯了用MATLAB处理矩阵…...

Ardb多存储引擎深度解析:RocksDB、LevelDB、LMDB、WiredTiger、PerconaFT、ForestDB全方位对比

Ardb多存储引擎深度解析&#xff1a;RocksDB、LevelDB、LMDB、WiredTiger、PerconaFT、ForestDB全方位对比 【免费下载链接】ardb A redis protocol compatible nosql, it support multiple storage engines as backend like Googles LevelDB, Facebooks RocksDB, OpenLDAPs LM…...