C语言程序的内存地址分配
当一个C程序被编译为可执行程序我们运行这个可执行程序时系统会为这个程序分配一个虚拟内存以下就是其分配详情不同的操作系统分的内存大小可能不同但是顺序都是一样的只不过每个区域的大小不一高地址 ┌─────────────────────┐ 0xFFFFFFFF│ 内核空间 │ 操作系统占用用户程序无法访问│ 1GB供内核使用 │├─────────────────────┤ 0xC00000003GB 边界│ ││ 栈区 ↓ │ ← 向下增长从高地址向低地址│ 局部变量、形参 │├─────────────────────┤│ ││ 空洞 │ ← 栈和堆之间的大片空闲区域│ 可动态调整 ││ │├─────────────────────┤│ 堆区 ↑ │ ← 向上增长从低地址向高地址│ malloc/calloc 分配│├─────────────────────┤│ .bss段 │ ←未初始化的全局/静态变量默认值为0│ │├─────────────────────┤│ .data段 │ ←已初始化的全局/静态变量有初始值│ │├─────────────────────┤│ .rodata段 │ ←只读数据字符串常量、const 修饰的变量│ │├─────────────────────┤│ .text段 │ ← 代码段程序的机器指令只读│ 程序指令/机器码 ││ │低地址 └─────────────────────┘ 0x08048000Linux 默认加载地址1. 代码段.text只读存放内容程序的机器指令CPU 执行的二进制代码权限只读防止程序意外修改自己的指令生命周期程序启动到结束一直存在举例你写的printf(hello);编译后就在这里// 函数体编译后存放在 .text 段void func() {int a 10; // 函数指令在这里但变量 a 在栈上}2. 只读数据段.rodata常量区存放内容字符串常量、const修饰的全局变量权限只读修改会导致段错误生命周期程序启动到结束一直存在‘char *str hello; // hello 存放在 .rodata 段const int num 100; // num 存放在 .rodata 段全局 const3. 数据段.data已初始化数据段存放内容已经初始化的全局变量、静态变量初始值不为 0权限可读写生命周期程序启动到结束一直存在int global 100; // 存放在 .data 段static int count 5; // 存放在 .data 段4. BSS 段.bss未初始化数据段存放内容未初始化的全局变量、静态变量默认值为 0权限可读写生命周期程序启动到结束一直存在特性程序加载时操作系统会把 BSS 段全部清零int global2; // 存放在 .bss 段默认值为 0static int count2; // 存放在 .bss 段默认值为 05. 堆区Heap动态分配存放内容malloc、calloc、realloc分配的内存特点手动分配和释放mallocfree从低地址向高地址增长sbrk/mmap空间较大但分配速度比栈慢如果不释放会造成内存泄漏int *p malloc(100 * sizeof(int)); // 在堆上分配 400 字节// ... 使用 ...free(p); // 手动释放6. 栈区Stack函数调用存放内容局部变量、形参、函数返回值、函数调用信息栈帧特点自动分配和释放函数调用时压栈返回时弹栈从高地址向低地址增长向下增长空间有限通常默认 8MB超出会栈溢出分配速度极快移动栈指针即可void func(int a, int b) { // a 和 b 在栈上int x 10; // x 在栈上char str[100]; // str 在栈上} // 函数返回后x、str、a、b 全部被自动回收

相关新闻

StarRocks 3.1.1 深度优化:GROUP BY 非聚合字段查询提速落地方案

StarRocks 3.1.1 深度优化:GROUP BY 非聚合字段查询提速落地方案

一、业务痛点 & 适用场景 在实时数仓建设、用户画像分析、交易数据统计的一线开发场景中,有一个需求高频且棘手:基于用户维度聚合统计交易总金额,同时精准保留每个用户最新一笔交易的明细维度信息。 简单来说就是:既要聚合汇总…

2026/7/26 11:02:55 阅读更多 →
数字电路设计核心:逻辑门与时序电路实战解析

数字电路设计核心:逻辑门与时序电路实战解析

1. 数字电子技术基础回顾 在开始深入探讨之前,我们先快速梳理一下数字电子技术的几个核心概念。数字电路与模拟电路最大的区别在于信号处理方式——数字电路处理的是离散的0和1信号,而模拟电路处理的是连续变化的信号。这种特性使得数字系统具有抗干扰能…

2026/7/26 19:29:00 阅读更多 →
开源脚手架!一款 SpringBoot 低代码快速开发平台!

开源脚手架!一款 SpringBoot 低代码快速开发平台!

大家好,我是 Java陈序员。 作为独立开发者,搭建系统时,80% 的时间都耗费在重复编写登录、权限、CRUD、数据加密这些基础功能上,真正留给核心业务的时间少之又少,这种模式的开发效率十分低下。 今天,给大家介…

2026/7/26 7:29:38 阅读更多 →

最新新闻

5个实战技巧:彻底掌握ES-Client的Elasticsearch管理方案

5个实战技巧:彻底掌握ES-Client的Elasticsearch管理方案

5个实战技巧:彻底掌握ES-Client的Elasticsearch管理方案 【免费下载链接】es-client elasticsearch客户端,issue请前往码云:https://gitee.com/qiaoshengda/es-client 项目地址: https://gitcode.com/gh_mirrors/es/es-client ES-Clie…

2026/7/26 19:29:20 阅读更多 →
Gemini API开发实战:从多模态架构到9.5亿月活的技术解析

Gemini API开发实战:从多模态架构到9.5亿月活的技术解析

如果你最近在关注AI大模型的发展,可能会注意到一个有趣的现象:当很多公司还在为AI商业化发愁时,Google母公司Alphabet刚刚交出了一份亮眼的财报——Q2营收增长24%,其中Gemini模型的月活跃用户达到了惊人的9.5亿。这个数字背后透露…

2026/7/26 19:29:20 阅读更多 →
PowerToys汉化终极指南:解锁Windows效率工具的完整中文体验

PowerToys汉化终极指南:解锁Windows效率工具的完整中文体验

PowerToys汉化终极指南:解锁Windows效率工具的完整中文体验 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 还在为PowerToys的英文界面发愁吗…

2026/7/26 19:29:20 阅读更多 →
Agent 上线就崩盘?别卷 Prompt,先守住团队协作的权限与日志底线

Agent 上线就崩盘?别卷 Prompt,先守住团队协作的权限与日志底线

聊《Agent到底能不能干活?别只看 Demo 和跑分》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要最近 AI 编程工具的风向变了。以前大家还在聊 Cursor 或 Claude Code 怎么帮个人开发者写个单页&#…

2026/7/26 19:29:20 阅读更多 →
如何从零开始掌握Kimi CLI:终端AI助手的完整实战指南

如何从零开始掌握Kimi CLI:终端AI助手的完整实战指南

如何从零开始掌握Kimi CLI:终端AI助手的完整实战指南 【免费下载链接】kimi-cli Kimi Code CLI is your next CLI agent. 项目地址: https://gitcode.com/GitHub_Trending/ki/kimi-cli 还在为复杂的开发任务而烦恼吗?想象一下,有一个A…

2026/7/26 19:29:20 阅读更多 →
Coding Agent核心技术解析与应用实践

Coding Agent核心技术解析与应用实践

1. Coding Agent的核心概念解析Coding Agent(代码代理)本质上是一种能够自主理解、生成和执行代码的智能程序系统。不同于传统IDE工具或简单代码补全插件,这类代理具备完整的"感知-决策-执行"循环能力。我在实际开发中观察到&#…

2026/7/26 19:28:20 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻