- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言内存泄露的问题
V01.19
第19卷第6期 长春大学学报 No.6
OFCHANGCHUNUNIVERSⅡY June2009
2009年6月 JOURNAL
C语言中的内存泄漏分析
王祥瑞
(吉林建筑工程学院计算机科学与工程学院,吉林长春130021)
摘要:内存泄漏是程序设计中经常出现的问题,即使有少量泄漏,长期运行之后,系统将会面临崩溃的危险。避
免内存泄漏的关键,就是要了解它发生的原因。文章首先阐述了内存泄漏的概念,分析了导致内存泄漏的原因,然
后介绍了内存泄漏的分类、危害以及内存泄露的常见情况,并给出了检测内存泄漏的方法。
关键词:C程序;内存泄漏;堆内存
312
中图分类号:11P 文献标识码:A 文章编号:1009—3907(2009)06—0027—03
0引言 这些对象严重泄漏时会导致整个操作系统不稳定。
相比之下,系统资源的泄漏比堆内存的泄漏更为严
C/C++程序语言的重要特色之一就是具有动
重‘1|。
态地分配和释放内存的能力,程序运行时,New/
2 内存泄露的原因及分类
Malloc等分配操作将内存块取到工作空间;Delete/
Free等释放操作将内存块送回自由空间。程序员通2.1 内存泄露的原因
过精心设计分配和释放操作,保证已分配的内存块 内存泄露的原因实质是没有释放向系统申请的
或者仍在工作空间,或者被送回自由空间。但是,动 内存。有许多情况会导致内存泄漏,如程序员编写
态空间中已经分配却未被释放,丢失了访问路径的 程序时对内存管理的考虑不是十分周全;没有在程
内存块,由于无法再被访问而泄漏。 序的全部执行路径中释放内存,没有在析构函数中
释放所有的内存等。忘记释放内存;构造函数失败;
1内存泄漏的定义
存在内存泄漏的析构函数;存在内存泄漏的异常处
内存泄漏通常是指分配出去的内存使用完毕后
理程序如文件、窗口、设备上下文、GDI对象使用完
没有释放掉,未被收回。长此以往,当再要求分配内
未释放;多个返回语句;使用错误形式的delete。一
存时,没有足够的内存可以分配,就会报出内存泄漏
个程序在崩溃之前可运行的时间越长,则导致崩溃
(memoryleak),它的一般表现方式是程序运行时间
的原因与内存泄漏的关系越大。
越长,占用内存越多,最终用尽全部内存,整个系统
2.2内存泄露的分类
崩溃。由程序申请的一块内存,且没有任何一个指
内存泄漏依照发生方式可以分为如下4类:
针指向它,那么这块内存就泄露了。
(1)常发性内存泄漏。发生内存泄漏的代码会
内存泄漏一般是指堆内存的泄漏。堆内存是指
您可能关注的文档
最近下载
- SCADA(电力监控)系统介绍.pptx VIP
- 2025年机关事业单位工人汽车驾驶员高级、技师国家题库练习题(附答案).docx VIP
- 班级生活有规则教学设计.doc VIP
- CMF中国宏观经济分析与预测报告(2025年中期) 稳舵远航的中国宏观经济.docx
- QGDW 11399-2015 架空输电线路无人机巡检作业安全工作规程.docx VIP
- 中国药物性肝损伤诊治指南2023版解读.pptx VIP
- 施工测量专项施方案.doc VIP
- 2024年春季四川凉山州普格县一村一幼辅导员招聘74人笔试备考题库及答案解析.docx VIP
- 防爆电气安装规范及验收标准制定.docx VIP
- 市政集团笔试题库及答案.pdf
文档评论(0)