野指针

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:

results matching ""

    No results matching ""