博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载]delete指针之后应该赋值NULL
阅读量:4979 次
发布时间:2019-06-12

本文共 367 字,大约阅读时间需要 1 分钟。

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

转载于:https://www.cnblogs.com/ransw/p/3950909.html

你可能感兴趣的文章
裁剪图片
查看>>
数据结构实习 problem L 由二叉树的中序层序重建二叉树
查看>>
VS中展开和折叠代码
查看>>
如何确定VS编译器版本
查看>>
设置PL/SQL 快捷键
查看>>
个人阅读作业7
查看>>
转载:深入浅出Zookeeper
查看>>
GMA Round 1 新程序
查看>>
node anyproxy ssi简易支持
查看>>
编译预处理指令:文件包含指令、宏定义指令、条件编译指令
查看>>
PHP函数 ------ ctype_alnum
查看>>
网站安全
查看>>
WS-Addressing 初探
查看>>
.NET+模块编排+数据库操作类的封装+分层架构+实体类+Ajax.net+Athem.NET+javascript+Activex组件+用户权限等...
查看>>
Markdown不常见功能
查看>>
(二)NUnit单元测试心得
查看>>
hdu_2604Queuing(快速幂矩阵)
查看>>
frame.bounds和center
查看>>
HDU 1102 Constructing Roads
查看>>
android StaticLayout参数解释
查看>>