zoukankan      html  css  js  c++  java
  • [转载]delete指针之后应该赋值NULL

    首先,C++标准规定:delete空指针是合法的,没有副作用。
    但是,delete p后,只是释放了指针指向的内存空间。p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址。

    问题来了,对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。
    如下代码

    int *p = new int(3);
    delete p;
    delete p;
    

      


    用VC编译运行将出现问题。
    将其改为:

    int *p = new int(3);
    delete p;
    p = NULL;
    delete p;
    

      


    则不会出现问题(因为delete空指针是合法的)
    所以,为了避免出现问题,指针被delete之后应该赋值NULL

  • 相关阅读:
    demo
    Git
    rest-framework框架 -- 认证权限流程源码
    sublime
    restful 协议 +面试
    Django的CBV
    vue 之 vue-router
    vue 之node.js 02
    浏览器内核
    安装apache+php+mysql
  • 原文地址:https://www.cnblogs.com/ransw/p/3950909.html
Copyright © 2011-2022 走看看