C语言内存泄露的问题.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)常发性内存泄漏。发生内存泄漏的代码会 内存泄漏一般是指堆内存的泄漏。堆内存是指

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档