delete 指针造成野指针
时间: 2023-06-23 19:53:23 浏览: 109
new,delete和指针
在C++中,使用delete释放指针指向的动态内存后,如果没有将该指针设置为NULL,就会造成野指针问题。这是因为delete只是释放了指针指向的内存空间,并没有将指针本身置为NULL,因此指针仍然指向原来的内存地址,但是这块内存已经被释放,再次访问这个指针时就会产生未定义的行为,从而导致程序崩溃或者数据错误等问题。
为了避免这种情况,我们应该在delete操作之后,将指针设置为NULL,这样就可以避免使用已经释放的内存空间造成的问题。例如:
```c++
int* p = new int;
// do something
delete p;
p = NULL; // 将指针设置为NULL
```
这样,即使在后续代码中再次使用p指针,也不会产生野指针问题,可以保证程序的正确性和稳定性。
阅读全文