社区
C++ 语言
帖子详情
析构函数中,delete一个指针后还有把指针设为NULL吗?
pop1210
2009-03-29 05:59:18
析构函数中,delete一个指针后还有把指针设为NULL吗?
...全文
507
5
打赏
收藏
析构函数中,delete一个指针后还有把指针设为NULL吗?
析构函数中,delete一个指针后还有把指针设为NULL吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zl0415197
2009-03-29
打赏
举报
回复
free 或delete 释放了内存之后,立即将指针设置为NULL,防止
产生“野指针”。
pop1210
2009-03-29
打赏
举报
回复
恩,谢谢两位!
pop1210
2009-03-29
打赏
举报
回复
恩,谢谢两位!
huojicha
2009-03-29
打赏
举报
回复
class A;
A *a = new A;
如果delete a;
a不会为空,而会为0xcccc这类型的吧
所以当你下次用得时候
if( a ) a->func( );
就会成功,非空的检查就没有用,
所以你最好在delete a;后面加上a = NULL;
cnStreamlet
2009-03-29
打赏
举报
回复
delete 本身不会把指针设为 NULL
在析构函数中设为 NULL 可能有点没必要,但养成 delete 后随手设为 NULL 据说是个好习惯
c++ 的
指针
析构 问题
c++的
指针
析构问题
c++之堆的使用
定义
一个
指针
指向堆
中
的空间,
指针
所指向的空间是匿名的,只能通过该
指针
才能进行访问。用new关键字申请的匿名空间,必须用
delete
关键字进行删除。 一、在堆
中
创建内存 堆
中
用new创建的内存在程序结束时不会自动释放,通过
指针
来访问堆
中
的数据,程序结束时
指针
被自动释放,所以导致堆
中
的内存空间无法使用,也无法找到。这就是内存泄漏;所以尽量使用
delete
手动释放堆空间 #include usin
C++
中
的
析构函数
和
delete
的关系
析构函数
1.构造函数是初始化对象的非static数据成员,在函数体
中
还可以另外做一些事情;
析构函数
则是释放对象使用的资源,并销毁对象的非static数据成员。
析构函数
,没有返回值,也不接受参数(导致不能被重载),所以对于
一个
给定的类,只会有
一个
唯一的构造函数。格式如下: ~A();2.构造函数与
析构函数
的执行过程区别 在构造函数
中
,先执行成员的初始化,且按照它们在类
中
出现的顺序
从默认
析构函数
学习c++,new,
delete
,内存泄漏,野
指针
默认
析构函数
: 当系统没有显式定义
析构函数
,编译器同样会为对象定义
一个
默认
析构函数
,默认的
析构函数
只能释放普通数据成员所占用的空间,无法通过释放通过new和malloc进行申请的空间,因此避免内存泄漏,我们要显式的
析构函数
对申请的空间释放。 内存泄漏(Memory Leak)是指程序
中
己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重...
析构函数
调用 堆
指针
删除时 赋值
NULL
指针
的值为
NULL
时,执行
delete
,系统不会调用
析构函数
,否则调用
析构函数
#include <> usingnamespace std; class A { public: A( void ) { cout << "A::A( )默认构造函数" << endl; } ~A( void ) { cout << "~A::A(
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章