删除指针后将其空设为空是很好的做法吗?我先说,使用智能指针,您就不必担心这个问题了。下面的代码有什么问题?Foo * p = new Foo;// (use p)delete p;p = NULL;这是由回答和评论另一个问题。一条评论来自尼尔·巴特沃斯引起了一些不满:在C+中,在DELETE之后将指针设置为NULL并不是普遍的良好做法。有时它是一件好事,有时它是没有意义的,可以隐藏错误。在很多情况下,这都无济于事。但以我的经验来看,不会有什么伤害的。有人启发我。
3 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
Foo* foo = 0; // Sets the pointer to 0 (C++ NULL) delete foo; // Won't do anything
Foo* foo = new Foo(); delete foo; // Deletes the object delete foo; // Undefined behavior
std::unique_ptr
std::shared_ptr
- 3 回答
- 0 关注
- 514 浏览
添加回答
举报
0/150
提交
取消