首先,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

delete指针之后应该赋值NULL相关推荐

  1. 【C 语言】多级指针 ( 在函数中生成 二级指针 | 通过传入的 三级指针 进行间接赋值 )

    文章目录 前言 一.在函数中生成 二级指针 ( 通过传入的 三级指针 进行间接赋值 ) 二.完整代码示例 前言 如果要 通过 函数形参 间接赋值 修改 nnn 级指针, 需要向函数中传入 n+1n + ...

  2. 浅析C++中的this指针 通过空指针(NULL)可以正确调用一些类的成员函数?

    有下面的一个简单的类: class CNullPointCall { public:     static void Test1();     void Test2();     void Test3 ...

  3. c语言字符指针初始化赋值,C语言_指针变量的赋值与运算,很详细详解

    指针变量的赋值 指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值.未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机.指针变量的赋值只能赋予地址, 决不能赋予任何其它数据 ...

  4. c语言指针赋值指针变量赋值吗,C语言_指针变量的赋值与运算,很详细

    指针变量的赋值 指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值.未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机.指针变量的赋值只能赋予地址, 决不能赋予任何其它数据 ...

  5. 【C 语言】指针数据类型 ( 指针类型变量 与 指针指向的内存块 概念区别 | 指针赋值 | 指针运算 | 内存赋值 | 内存取值 | 内存修改注意事项 )

    文章目录 一.指针类型变量 与 指针指向的内存块 概念区别 1.指针赋值 2.指针运算 3.内存赋值 4.内存取值 5.内存修改注意事项 一.指针类型变量 与 指针指向的内存块 概念区别 指针类型变量 ...

  6. 把list清空和赋值null对内存释放的区别

    List<string> list=.... list.Clear(); list=null; 一般看法:list=null;能更快的释放内存, list.Clear();只是清空了内容 ...

  7. 级联引用完整性约束ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }

    通过使用级联引用完整性约束,您可以定义当用户试图删除或更新现有外键指向的键时,SQL Server 执行的操作. CREATE TABLE 语句和 ALTER TABLE 语句的 REFERENCES ...

  8. 若有以下定义和语句:double r=99, *p=r;*p=r; 则以下正确的叙述是 A) 以下两处的*p含义相同,都说明给指针变量p赋值 B) 在“double r=99, *p=r;“中,

    若有以下定义和语句:double r=99, *p=&r;p=r; 则以下正确的叙述是 A) 以下两处的p含义相同,都说明给指针变量p赋值 B) 在"double r=99, *p= ...

  9. 关于C语言指针赋值NULL的小心得

    正确示范: main() { int a=3, *b=NULL; b=&a printf("%d", *b); } 错误示范: main() { int a=3, *b=N ...

最新文章

  1. ImportError: No module named images
  2. Spring+Shiro+CAS整合配置笔记
  3. iOS macOS的后渗透利用工具:EggShell
  4. POJ1094查分约束,判断关系是否唯一
  5. 洛谷P1466 集合 Subset Sums
  6. php 单用户登录,Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用...
  7. hibernate教程--抓取策略详解
  8. Python-爬虫-requests
  9. phoenix 使用详细介绍 创建二级索引
  10. 这款Linux 恶意软件正在劫持全球的超级计算机
  11. 【信息学奥赛一本通 提高组】第一章 贪心算法
  12. 对计算机科学的总体认识,浅谈对计算机科学与技术的认识
  13. Redis实现消息队列(订阅/发布模式 、LPUSH+BRPOP)
  14. 玉米社:竞价推广对话成本优化办法
  15. 中小学python编程教学-小学信息技术教学中进行Python 编程语言教学的策略
  16. UVM – Stop Hitting Your Brother Coding Guidelines
  17. Java发送电子邮件(使用mail.jar和activation.jar)
  18. github如何合并分支
  19. 大数据有哪些软件可以使用?
  20. mql5的include库文件中自定义enum类型在指标文件中的调用方式

热门文章

  1. 前端面试问题(持续更新)
  2. Elixir 1.3带来新的语言功能、API和改进后的工具
  3. IOS开发系列--IOS程序开发概览
  4. 【网页设计】框架的高度随框架里面的内容的多少而改变——转
  5. 连接web端,mysql,返回乱码解决
  6. 全面接入「人脸识别」,智慧城市公共服务的另一种思路
  7. 赛门铁克:“高度怀疑”WannaCry的幕后黑手是朝鲜
  8. LINUX 下 WEBlogic集群的搭建-01
  9. mysql自动备份脚本,及系统定时备份设置!
  10. 一步一步搞定InfoPath(02)--配置VSTA