int *p = NULL;
delete p;
上面的语句运行起来是没有问题的,而下面的语句执行起来会引发异常,提示堆已损坏。
int i;
int *p = &i;
delete p;
如果对一块动态分配的内存重复释放,也会产生异常,提示堆已损坏。
所以delete一个指针后,把该指针赋值为NULL是一个好的习惯。定义一个指针的时候,赋初值为NULL也是好的。这样若对其操作的话不会有什么问题。
int *p = NULL;
delete p;
上面的语句运行起来是没有问题的,而下面的语句执行起来会引发异常,提示堆已损坏。
int i;
int *p = &i;
delete p;
如果对一块动态分配的内存重复释放,也会产生异常,提示堆已损坏。
所以delete一个指针后,把该指针赋值为NULL是一个好的习惯。定义一个指针的时候,赋初值为NULL也是好的。这样若对其操作的话不会有什么问题。