在 C++ 中 , 使用 new 操作符动态申请内存的时候,如果申请失败,则会抛出 bad_alloc异常
当使用 delete 释放一块内存的时候 , 有些编译器上delete 不能判断一块内存是不是由 new 申请的
如 :
int i = 0;
int *p = &i;
delete p;
p = NULL; // delete 以后迅速置为NULL ,这是一个好习惯
这样的代码在许多编译器上都能编译通过,但是这是错误的,要注意
还有一个关于删除 0 地址指针的 问题
delete (char*)0;
C++ 保证 这条语句是正确的,但是他没有任何意义,不做任何动作