手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

内存调试技巧:C 语言最大难点揭秘

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内。内存错误是 C 和 C 编程的祸根:他们很普遍,认识其严重性已有二十多年,但始终没有完全解决,他们可能严重影响应用程式,并且很少有研发团队对其定制明确的管理计划。但好消息是,他们并不怎么神秘。引言

  C 和 C 程式中的内存错误很有害:他们很常见,并且可能导致严重的后果。来自电脑应急响应小组(请参见参考资料)和供给商的许多最严重的安全公告都是由简单的内存错误造成的。自从 70 年代末期以来,C 程式员就一直讨论此类错误,但其影响在 2007 年仍然很大。更糟的是,假如按我的思路考虑,当今的许多 C 和 C 程式员可能都会认为内存错误是不可控制而又神秘的顽症,他们只能纠正,无法预防。

  但事实并非如此。本文将让您在短时间内理解和良好内存相关的编码的任何本质:

  正确的内存管理的重要性

  存在内存错误的 C 和 C 程式会导致各种问题。假如他们泄漏内存,则运行速度会逐渐变慢,并最终停止运行;假如覆盖内存,则会变得很脆弱,很容易受到恶意用户的攻击。从 1988 年著名的莫里斯蠕虫攻击到有关 Flash Player 和其他关键的零售级程式的最新安全警报都和缓冲区溢出有关:“大多数电脑安全漏洞都是缓冲区溢出”,Rodney Bates 在 2004 年写道。

  在能够使用 C 或 C 的地方,也广泛支持使用其他许多通用语言(如 Java?、Ruby、Haskell、C#、Perl、Smalltalk 等),每种语言都有众多的爱好者和各自的长处。但是,从计算角度来看,每种编程语言优于 C 或 C 的主要长处都和便于内存管理密切相关。和内存相关的编程是如此重要,而在实践中正确应用又是如此困难,以致于他支配着面向对象编程语言、功能性编程语言、高级编程语言、声明性编程语言和另外一些编程语言的任何其他变量或理论。

  和少数其他类型的常见错误相同,内存错误还是一种隐性危害:他们很难再现,症状通常不能在相应的源代码中找到。例如,无论何时何地发生内存泄漏,都可能表现为应用程式完全无法接受,同时内存泄漏不是显而易见。

  因此,出于任何这些原因,需要特别关注 C 和 C 编程的内存问题。让我们看一看如何解决这些问题,先不谈是哪种语言。

内存错误的类别

  首先,不要失去信心。有很多办法能够对付内存问题。我们先列出任何可能存在的实际问题:

  1.内存泄漏

  2.错误分配,包括大量增加 free()释放的内存和未初始化的引用

  3.悬空指针

  4.数组边界违规

这是任何类型。即使迁移到 C 面向对象的语言,这些类型也不会有明显变化;无论数据是简单类型还是 C 语言的 struct或 C 的类,C 和 C 中内存管理和引用的模型在原理上都是相同的。以下内容绝大部分是“纯 C”语言,对于扩展到 C 主要留作练习使用。

[1] [2] [3] [4] [5] [6] 下一页




文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS