野指针
delete并不是区修改指针的内容,而是区释放指针指向的那块内存,所以delete操作后,指针的内容没有发生改变。
野指针:指针指向已经释放的内存,野指针也称为垃圾内存。如果,我们再使用这些内存就会发生一些问题--内存泄漏。
char *p;
p = new char;
delete p;
//p=NULL;
strcpy(p,"hello");
#include <iostream>
int main(int argc, const char * argv[]) {
char *p;
p = new char;
delete p;
//*p = 'a';
strcpy(p,"hello");
return 0;
}
delete 系统已经回收了指针p,但是我们还在使用(向里面写东西)。指针p没有回家,怎么规避呢?
delete之后及时置为NULL.
delete p;
p = NULL: