C语言—指针常见错误.docx

C语言—指针常见错误.docx

ID:51673397

大小:16.16 KB

页数:2页

时间:2020-03-14

C语言—指针常见错误.docx_第1页
C语言—指针常见错误.docx_第2页
资源描述:

《C语言—指针常见错误.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言入门教程-指针常见错误2009年07月29日11:47本站整理作者:佚名用户评论(0)关键字:指针常见错误错误1:未初始化的指针一个最易犯的指针错误是试图引用未初始化(因而指向的是无效地址)的指针。例如:int*p;*p=12;指针p在声明时未初始化,指向的是一个随机的内存地址。它可能指向系统栈、全局变量、程序代码区或操作系统。执行*p=12;时,程序会不加辨别地试图在p指向的随机位置处写入一个12。这时程序有可能立即崩溃,也可能等上半小时然后崩溃,或者程序另一个部分的数据被悄然破坏而您却浑然不知。可见这种错误非常难于排查。请确保指针解引用

2、(取出指针指向的地址中的内容)之前所有的指针已被初始化为指向有效地址。错误2:无效指针引用。当指向无效地址的指针仍被引用时即发生无效指针引用。导致这类错误的一种可能是当q未初始化时执行p=q;。此时指针p也变为未初始化的。任何对*p的引用即造成无效指针引用。避免此类错误的惟一途径是用画图的方法记录每个步骤的指针引用情况,并确保全部指针都各有所指。由于和错误1同样的原因,无效指针引用也会导致程序莫名其妙地崩溃。错误3:零指针引用当试图在程序中引用指向零地址的指针时即发生零指针引用。例如,若p是一个整型指针,则下面的代码是无效的:p=0;*p=12;

3、p不指向任何内存块。所以,试图对此内存块的读写即为无效的零指针引用。我们会在后文看到,将指针指向零地址是有充分的正当理由的。然而,对零指针的解引用(取出指针指向的地址中的内容)却是无效的。所有这些错误,对于一个程序来说都是致命的。要谨防您的程序产生这些错误。最好的方法是为程序的每一步画图记录指针引用情况。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。