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

C++ 程序内存分区

C 程序运行时操作系统会给进程分配虚拟地址空间在 32/64 位系统中逻辑上划分为代码区、全局静态区、常量区、栈区、堆区5 个区域。下面从存储内容、管理方式、生命周期、权限、代码示例、常见坑逐一拆解。一、代码区Text 段 / 只读代码段1. 存储内容编译后生成的二进制机器指令包括所有函数的执行代码main函数、自定义函数、库函数。2. 核心特点只读防止程序运行时指令被篡改避免崩溃可共享多个运行相同程序的进程共用同一份代码区节省内存地址低程序启动时加载程序结束才释放。3. 易错点不能修改代码区内容比如修改函数指令会直接触发段错误。二、全局 / 静态区Data 段 BSS 段存放全局变量和 **static静态变量 **整个程序生命周期有效程序结束由系统回收。分为两个子段1. Data 段已初始化全局区存储初始化的全局变量、初始化的静态局部 / 全局变量cpp运行int g_val 100; // 全局变量 → Data段 void func() { static int s_val 200; // 静态局部变量 → Data段**不在栈区** }2. BSS 段未初始化全局区存储未初始化的全局变量、未初始化的静态变量特点程序加载时系统自动将该区域全部置 0不占用磁盘空间运行时才分配内存。cpp运行int g_none; // 未初始化全局变量 → BSS段默认0 static int s_none; // 静态未初始化 → BSS段3. 关键易错点static修饰的局部变量生命周期是全局的但作用域仅在函数内静态变量只会初始化 1 次函数多次调用不会重复初始化。三、常量区只读数据段1. 存储内容字符串字面量hello全局const修饰的常量只读的静态常量。2. 核心特点只读权限强行修改直接报段错误 (Segmentation Fault)生命周期和程序一致。3. 代码示例 坑点cpp运行// 字符串abc存在常量区str存的是常量区地址 char *str abc; str[0] x; // ❌ 错误修改常量区直接崩溃 const char str2[] abc; // 数组字符串拷贝到栈上可修改 str2[0] x; // ✅ 正确重点区分char* str指向常量区char str[]在栈区。四、栈区Stack1. 存储内容局部变量函数内定义的普通变量函数参数、函数返回地址函数调用时的临时上下文。2. 管理方式系统自动分配、自动释放无需程序员干预。函数调用时栈向下扩展分配内存函数执行结束栈自动回收内存释放。3. 核心特点空间小Windows 默认 1MLinux 默认 8M速度极快连续内存CPU 直接寻址结构先进后出栈结构内存连续大小固定不能动态扩容。4. 常见问题栈溢出递归深度太大、定义超大数组int arr[10000000]直接崩溃局部变量出函数后销毁不能返回局部变量的地址。cpp运行int* test() { int a 10; // a在栈区函数结束销毁 return a; // ❌ 错误返回栈地址野指针 }五、堆区Heap1. 存储内容程序员动态申请的内存通过new / malloc开辟。2. 管理方式完全手动管理申请new/malloc释放delete/free忘记释放 →内存泄漏释放后继续使用 →野指针。3. 核心特点空间极大受虚拟内存限制内存不连续分配速度比栈慢生命周期由程序员控制不释放则一直存在程序结束系统回收。4. 代码示例cpp运行int* p new int(10); // 堆区开辟int值10 delete p; // 手动释放 int* arr new int[5]; // 堆数组 delete[] arr;5. 易错点new[]必须用delete[]普通new用delete不能混用释放后指针置空p nullptr避免野指针。五大内存分区对比总表表格分区管理方式存储内容生命周期读写权限典型问题代码区系统二进制指令、函数程序全程只读指令篡改崩溃全局静态区系统全局 / 静态变量程序全程读写静态变量全局存活常量区系统字符串常量、全局 const程序全程只读修改直接段错误栈区自动分配释放局部变量、参数函数内读写栈溢出、野指针堆区手动 new/delete动态内存手动控制读写内存泄漏、野指针补充完整代码演示可直接运行观察cpp运行#include iostream using namespace std; int g_val 10; // 全局区 Data段 int g_none; // 全局区 BSS段 const char* g_str hello; // 常量区 void test() { static int s_val 20; // 静态局部变量 → 全局区 int a 30; // 栈区 int* p new int(40); // 堆区 delete p; } int main() { test(); return 0; }

相关文章:

C++ 程序内存分区

C 程序运行时,操作系统会给进程分配虚拟地址空间,在 32/64 位系统中,逻辑上划分为 代码区、全局静态区、常量区、栈区、堆区 5 个区域。下面从存储内容、管理方式、生命周期、权限、代码示例、常见坑逐一拆解。一、代码区(Text 段…...

Gemini 3.5十大应用场景:从代码生成到视频创作

一、软件开发场景 1.1 代码自动生成 Gemini 3.5 Flash在编码基准测试中达到76.2%,可以: 理解复杂技术文档生成高质量代码自动编写测试用例 # 代码生成示例 prompt """ 根据以下需求编写Python代码: 1. 创建一个REST API服…...

如何快速完成北航毕业论文:LaTeX模板终极指南

如何快速完成北航毕业论文:LaTeX模板终极指南 【免费下载链接】BUAAthesis 北航毕设论文LaTeX模板 项目地址: https://gitcode.com/gh_mirrors/bu/BUAAthesis 还在为毕业论文格式调整而烦恼吗?每年都有无数北航学子在毕业季被繁琐的格式要求折磨得…...

5分钟掌握Subfinder:自动化字幕下载的终极解决方案

5分钟掌握Subfinder:自动化字幕下载的终极解决方案 【免费下载链接】subfinder 字幕查找器 项目地址: https://gitcode.com/gh_mirrors/subfi/subfinder 面对海量影视资源却苦于找不到合适字幕?Subfinder字幕查找器正是为解决这一痛点而生。这款开…...

Godot原生强化学习集成:零Python实现AI训练与部署

1. 这不是又一个“Hello World”式教程:为什么GodotRL的组合值得你花10分钟认真看我第一次在Godot Asset Library里点开那个标着“Reinforcement Learning Agent”的插件时,心里是带着怀疑的——毕竟过去三年里,我试过七种不同方式把强化学习…...

Godot RL Agents实战:游戏开发者可用的轻量强化学习落地方案

1. 这不是“又一个强化学习教程”,而是给游戏开发者准备的RL落地切口你有没有过这样的经历:在GitHub上看到一个标着“Godot RL”的仓库,点进去发现README里全是PyTorch张量形状、Gymnasium环境注册、PPO超参数表格,再往下翻是几行…...

Rescuezilla:3步轻松搞定系统备份与恢复的瑞士军刀

Rescuezilla:3步轻松搞定系统备份与恢复的瑞士军刀 【免费下载链接】rescuezilla The Swiss Army Knife of System Recovery 项目地址: https://gitcode.com/gh_mirrors/re/rescuezilla 当你面对电脑系统崩溃、硬盘损坏或数据丢失的紧急情况时,是…...

为了还原具身智能科研市场的全貌,我们找了多个头部高校聊聊

具身智能「最大客户说」 在具身智能所有喧嚣的落地故事里,科研市场是最沉默也最关键的那一个。 这是无数创业公司拿到的第一笔真正意义上的收入,帮助团队度过了最艰难的从0到1的商业化探索阶段,也让机器人本体在成百上千次的拆解、改装、调…...

企业级应用如何利用Taotoken实现多模型灾备与负载均衡

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级应用如何利用Taotoken实现多模型灾备与负载均衡 1. 场景与挑战 在企业级应用中,大模型API的调用已成为许多核心…...

2026年AI论文写作工具实测排行,哪款真正适合写论文?

2026 年学术 AI 论文工具已形成全流程、理工 / 社科、英文 / 中文、免费 / 付费的清晰分化。综合实测排行与场景适配,千笔AI 是中文全能首选,DeepSeek 学术版是理工开源首选,毕业之家是国内毕业专属首选。 一、2026 年实测排行 TOP5&#xff…...

2026年实测AI论文平台榜单(安全合规版)

为解决学术写作中效率与合规两大核心痛点,以下精选8款高适配性AI论文写作工具(按综合优先级排序),围绕中文学术规范适配、真实参考文献生成、格式标准化、高性价比四大核心维度筛选,同时配套分场景精准选型方案与学术合…...

Windows Server TLS安全加固:注册表三步禁用Sweet32漏洞

1. 这不是“打补丁”,而是给Windows Server的SSL/TLS协议栈做一次外科手术你有没有遇到过这样的情况:安全扫描工具突然报出一堆红色高危漏洞,CVE-2016-2183(Sweet32)、CVE-2015-2808(Logjam)、C…...

小爱音箱音乐解锁终极指南:简单三步实现智能音箱音乐自由

小爱音箱音乐解锁终极指南:简单三步实现智能音箱音乐自由 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 你是否曾经对小爱音箱说"播放周杰伦"…...

技术文档_车辆智能监测系统

车辆智能监测系统 - 技术文档 1. 系统概述 1.1 项目背景 本系统是一套基于海康威视SDK和RKNN模型的车辆智能监测系统,主要用于车辆年检场景中的黑烟检测和车牌识别。 1.2 核心功能功能模块说明状态车牌识别通过海康SDK接收车牌抓拍报警✅ 已实现黑烟检测使用RKNN模型…...

无需复杂代理快速为你的项目接入GPT4与Claude等多模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 无需复杂代理快速为你的项目接入GPT4与Claude等多模型 基础教程类,面向希望在一个项目中灵活调用不同厂商大模型的开发…...

3分钟搞定Figma中文界面:FigmaCN汉化插件完整指南

3分钟搞定Figma中文界面:FigmaCN汉化插件完整指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma复杂的英文界面而烦恼吗?作为中文设计师&#xff0…...

Unity科幻隧道系统:模块化语法与三层材质架构

1. 这不是“贴图模型”的资源包,而是一套可复用的科幻空间语法系统你有没有试过在Unity里搭一个像《银翼杀手2049》里那种泛着冷光、布满管线与全息界面的通道?我去年做一款赛博朋克风格的VR导览项目时,就卡在这一步——买了三套号称“科幻隧…...

新手入门教程使用Python快速配置Taotoken的OpenAI兼容API调用环境

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 新手入门教程使用Python快速配置Taotoken的OpenAI兼容API调用环境 对于刚接触大模型API的Python开发者来说,快速搭建一…...

3步免费修复损坏视频:Untrunc完整视频恢复指南

3步免费修复损坏视频:Untrunc完整视频恢复指南 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否曾因为视频文件损坏而无法播放珍贵的回忆&#xff…...

AutoLegalityMod:如何在15分钟内创建完全合法的宝可梦数据

AutoLegalityMod:如何在15分钟内创建完全合法的宝可梦数据 【免费下载链接】PKHeX-Plugins Plugins for PKHeX 项目地址: https://gitcode.com/gh_mirrors/pk/PKHeX-Plugins 从数据混乱到精准合规的技术实现 每个宝可梦训练师都曾面临这样的困境&#xff1a…...

明日方舟智能基建管理终极指南:Arknights-Mower 完整使用教程

明日方舟智能基建管理终极指南:Arknights-Mower 完整使用教程 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》每日繁琐的基建操作而烦恼吗?Arknights-M…...

ABAP云迁移中SAML Bearer断言实战指南

1. 这不是“配置一下就能用”的流程——SAML Bearer Assertion 在 ABAP 云迁移中到底在替谁干活?你刚接手一个 SAP S/4HANA Cloud 扩展项目,客户要求“把本地 ABAP 系统里的用户身份,安全地透传到新上线的 Node.js 微服务里”。运维同事甩来一…...

Taotoken的Token Plan套餐如何让我的消费更可控

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的Token Plan套餐如何让我的消费更可控 1. 从按量计费到Plan套餐的决策 在持续使用大模型API进行项目开发的过程中&#…...

Foobar2000终极歌词体验:三平台逐字歌词完整配置指南

Foobar2000终极歌词体验:三平台逐字歌词完整配置指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000找不到高质量的逐字歌词…...

10分钟快速上手:使用html-to-docx实现HTML到Word文档的无缝转换

10分钟快速上手:使用html-to-docx实现HTML到Word文档的无缝转换 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx 还在为网页内容无法完美转换为Word文档而烦恼吗?每次复制粘贴H…...

企业内如何通过Taotoken实现API Key的精细化权限管理

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内如何通过Taotoken实现API Key的精细化权限管理 在团队协作开发与使用大模型API的场景中,一个常见的挑战是如何安…...

VHS Pro深度解析:Unity中模拟录像带失真的物理建模与工业应用

1. 为什么今天还有人执着于“坏掉的画质”?——VHS Pro 不是怀旧装饰,而是视觉叙事新工具你有没有在剪辑软件里拖动一个“胶片颗粒”滑块,看着画面突然蒙上一层灰蒙蒙的噪点,然后心里咯噔一下:这玩意儿真能用&#xff…...

Godot纸牌游戏框架:分层架构与卡牌状态管理

1. 这不是又一个“通用游戏框架”,而是一套专为纸牌游戏设计的骨骼系统你有没有试过在Godot里从零搭一张卡牌游戏?我试过三次——第一次用Node2D硬堆,拖了二十多个场景,连抽卡动画都得手写Tween;第二次改用Resource做卡…...

从零开始在Taotoken平台创建管理密钥并获取调用示例代码

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从零开始在Taotoken平台创建管理密钥并获取调用示例代码 1. 开始前的准备 如果你刚开始接触大模型API,可能会觉得配置…...

Nginx慢速HTTP攻击防护:超时配置与内核级加固实战

1. 这不是误报:当Nginx日志里反复出现“client timed out”时,你面对的已是真实攻击面“检测到目标主机可能存在缓慢的HTTP拒绝服务攻击”——这条告警在安全扫描报告里出现时,很多运维同学第一反应是:又一个误报。毕竟Nginx跑得稳…...