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

C语言基础 内存管理

第十章 内存管理./a.out运行起来后系统会给a.out分配一段内存区域1 code 存放编写好的c语言代码。只读特性在运行期间不能修改。2 data 数据段。存储全局变量以及被static修改的变量。细分data 数据段有初值的全局变量和static变量bss 未初始化的数据段。包含没有给初值的全局变量和static变量。由系统负责初始化为0。rodata 只读数据段。包含字符串常量。3 heap 堆区。2.9G程序在运行时需要内存的时候在堆中申请。相对堆空间比较大可以自动增长。如果需要空间需要手动申请malloc。使用完毕后需要手动释放内存free。申请内存后没有释放的那么这段空间一直存在直到释放或程序关闭。由程序员决定生命周期。4 共享区 只要存储库函数的实现。比如printfscanf共享库动态库文件ldd ./a.out5 栈区 堆栈8M内存空间自动申请和释放。局部变量函数参数返回地址。出了作用域内存就会释放。作用1 可以获得相对大的内存。2 内存使用率提高#includestdlib.h malloc 分配空间内存参数是需要内存的大小。 返回值是分配到堆内存空间的地址。地址值需保留好直到释放前。 释放堆内存空间参数如要传入当时malloc的返回值。这个值要和当时分配空间的地址值一致。 void free(void*ptr) 释放完后ptr NULL不然ptr是野指针。也不要试图去访问原来的堆空间数据 从逻辑上认为堆空间数据生命周期结束。3 内存的泄露1 只申请堆内存空间不释放。系统内存空间枯竭程序会异常退出。2 当申请堆空间后不小心保存堆空间地址的指针被覆盖了那么原来报错的堆空间就丢失了。
http://www.zskr.cn/news/1374793.html

相关文章:

  • 2026年靠谱的电磁悬挂除铁器/潍坊工业除铁器/潍坊除铁器/永磁自卸除铁器推荐厂家精选 - 品牌宣传支持者
  • 机器学习与强化学习如何赋能黑盒优化:从代理模型到元优化
  • Chiseling算法:交互式假设检验在因果亚组发现中的应用
  • SSH、SNMP、NETCONF、SFTP
  • 深入理解RAG中的嵌入模型Embedding Model
  • 麒麟系统启动卡住别慌!这可能是磁盘文件系统坏了,试试这几条Linux命令自救
  • 室内点云轮廓提取
  • 13.解决 99% 刷机故障!小米 / 华为 / OV / 苹果通用救砖与分区修复教程
  • 机器学习对抗概念漂移:恶意浏览器扩展检测的实战与反思
  • Web3钱包:钱包集成与签名验证
  • 图像数据质量自动化评估与清洗:从CleanVision到自适应阈值实战
  • Android高版本HTTPS抓包终极方案:Magisk+MoveCert证书迁移
  • 渗透测试信息收集四层穿透模型与实战流水线
  • JWT认证深度解析:从签名原理到密钥轮换与灰度升级
  • Outlook与Gmail OAuth 2.0 Proxy 实现原理与工程实践
  • DVWA High文件上传漏洞深度解析与四重绕过实战
  • 元学习驱动AutoML动态搜索空间优化:效率与性能双提升
  • OpenAI RLHF的理解
  • 机器人异常检测实战:基于系统日志的LR、SVM与自编码器模型对比
  • 在Ubuntu 14.04上为老旧系统(如XP)搭建现代Web服务栈:Apache 2.4.59 + OpenSSL 1.1.1w + PHP 8.3.6 保姆级配置指南
  • 在Ubuntu 22.04上,用SSH和HTTPS两种方式搞定OpenHarmony 4.1 Release源码下载(附工具链配置)
  • 机器学习势能面验证:从静态点收敛性到全局拓扑评估
  • Gemini Omni Flash 完整指南:Google AI 视频生成器深度解析
  • 机器学习检测Chrome恶意扩展:概念漂移挑战与开放世界评估
  • 告别SSH连接玄学!用Finalshell管理多台Linux服务器时,如何一劳永逸搞定IP变动?
  • VMware17装CentOS踩过的那些坑:从镜像选择、密码设置到登录失败的完整避雷指南
  • 卷积神经网络在天文图像中自动搜寻双活动星系核的工程实践
  • Java中的接口
  • Rust Web框架对比:Axum、Rocket、Warp深度解析
  • YOLO26涨点改进| TIP 2025 |独家创新首发、特征融合改进篇|引入DFAM双特征聚合模块,通过局部纹理先验强化边缘、轮廓信息,助力小目标检测、RGB-D目标检测、多模态融合目标检测有效涨点