现在的位置: 首页 > 综合 > 正文

指针错误总结

2017年08月18日 ⁄ 综合 ⁄ 共 915字 ⁄ 字号 评论关闭

C/C++编程,指针起着非常重要的作用,然而,使用指针却容易出现各种各样的错误,而且很多错误都难以察觉,编程者喜欢它却惧怕着它。下面我就根据自己这几年的编程经验,对使用指针过程中容易出错的进行总结。
 
  1.  指针越界:是使用指针最容易出错的情况之一。
     特点:编译器没办法确定其错误,有时候也能够正常运行,如果出错了,将导致整个程序崩溃!这种错误很难直接查出其具体的错误位置,排错能力较差,所以我们要在使用指针之前必须首先要考虑到是否会导致指针越界。
    如何预防:使用指针之前确定其指向内存的大小,然后在使用指针内存之前加一个条件语句判断要使用的指针内存是否超过其大小,是则退出或重新申请。经常代码写完后,要时常检查这方面的错误;
   
  2.  内存泄漏:也是使用指针最容易出现错误的情况之一。
     特点:编译器没办法确定其错误,程序运行正常,但如果程序长期循环运行,则会导致程序运行变慢,内存占用逐渐变大。这种错误也很难查出其具体的错误位置,排错能力很差。
    如何预防:成对原则,即写一个内存申请语句/函数,必须同时写一个对应的内存释放语句/函数;经常代码写完后,要时常检查这方面的错误;在return或exit语句之前要考虑是否已经把需要释放的内存释放。

  3. 使用已经释放的指针内存。
      特点:这种错误同指针越界错误的特点类似。
      如何预防:在释放指针内存后,将指针赋予NULL值,到时候在使用内存时就可以根据指针内存是否为NULL值确定是否使用.

  4.  使用还未进行动态内存申请的指针。这种错误同3,但运行一般会出错,因为指针的值一般都是无效的值,建议在声明定义指针变量时赋予初值(NULL).

  5.  内存申请失败。
    特点:一般编译和运行都能通过,而且大部分都会正常运行,但万一出现由于内存不够或其它原因导致内存申请失败,则会出现严重的错误。这种错误排错能力也很差,需要事先预防。
    如何预防:动态申请内存后都需要对内存申请成功与否进行判断。

         其它还有很多情况可能会导致使用指针错误,以上主要是根据自己的经验进行大概总结,可能理解会有误,仅供参考。读者如果有什么可以补充的或发现错误的可以加以评论,本人不甚感激。

【上篇】
【下篇】

抱歉!评论已关闭.