一般来说,执行语句:
int *p = new int(1);
delete p;
之后,指针指向的内存空间已经释放了,该指针已经没有“实权”了,但是该指针还是存在,并没有消失,而且指向的地址也没有改变,这时对这个指针的任何操作都是危险的,很容易发生程序错误,这时候的p就是一个野指针,比如再次执行delete p操作,会使程序崩溃。良好的习惯是在delete之后,随后将该指针置NULL,如下:
int *p = new int
一般来说,执行语句:
int *p = new int(1);
delete p;
之后,指针指向的内存空间已经释放了,该指针已经没有“实权”了,但是该指针还是存在,并没有消失,而且指向的地址也没有改变,这时对这个指针的任何操作都是危险的,很容易发生程序错误,这时候的p就是一个野指针,比如再次执行delete p操作,会使程序崩溃。良好的习惯是在delete之后,随后将该指针置NULL,如下:
int *p = new int