zoukankan      html  css  js  c++  java
  • 野指针防范

    如果程序比较长,我们有时记不住pn3所指的内存是否已经被释放,在继续使用pn3之前,通常会用语句if (pn3!= NULL)进行防错处理。很遗憾,此时if 语句起不到防错作用,因为即便pn3不是NULL 指针,它也不指向合法的内存块。因此,建议在delete释放了内存之后,应立即将指针赋值为NULL,防止产生“野指针”。

     char *p = (char *) malloc(100);
    
         strcpy(p, “hello”);
    
         free(p);         // p 所指的内存被释放,但是p所指的地址仍然不变
    if(p != NULL)      // 没有起到防错作用
    
         {
    
            strcpy(p, “world”);      // 出错
    
    }

    所以在free(p)之后应该增加p = NULL,要有安全编程的意识

    http://wenku.baidu.com/view/6486f03631126edb6f1a1097.html

    《野指针》

    http://baike.baidu.com/view/1291320.htm

    《C语言野指针》

    http://blog.csdn.net/xwdok/archive/2006/01/11/576497.aspx

    《野指针,以及c++中的野指针》

    http://blog.csdn.net/justrun2005/archive/2006/04/01/647332.aspx

    《高质量C++编程指南》林锐

  • 相关阅读:
    第五章 数据的共享与保护
    实验6
    实验5
    实验4 类与对象2)
    实验三 类与对象
    实验2
    2018—3-21第二章程序例题(2)
    第二章思维导图
    2018—3-18C++第二章程序例题
    汇编实验九
  • 原文地址:https://www.cnblogs.com/moonflow/p/2461719.html
Copyright © 2011-2022 走看看