c++ - 为什么建议在删除后将指针设置为null?

标签 c++ pointers

<分区>

int* ptr = new int();
delete ptr; 
ptr = 0; // or null

我的书告诉我,在删除指向的内容后将指针设置为 null 或 0 是一种很好的做法。我不明白为什么。有人可以给我一个这可能会导致问题的场景吗?

最佳答案

只是为了让您知道指针不再指向任何东西,并且如果条件和其他 bool 检查将失败:

   delete ptr;
   ptr = NULL;
   if(ptr)
     *ptr = 2;

此代码将运行得很好,但如果指针未设置为 NULL 会导致内存损坏。

关于c++ - 为什么建议在删除后将指针设置为null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16573257/

相关文章:

C++ 任何指针作为函数参数

c - 使用 C 返回数组

c++ - va_arg 带有 void* 列表

c++ - 使用以前未知的模板存储通用对象

c++ - .wav 文件编码的 C/C++ 库

c++ - 如何将插槽作为参数传递

c++ - 使用图像指针绘制图像

c++ - Arduino函数在调用其他函数后一直循环

c++ - 模板化 lambda 中的所有 lambda 是否也是模板化 lambda?

c - 根据C中的定界符拆分字符串