在 C++ 中 , 使用 new 操作符动态申请内存的时候,如果申请失败,则会抛出  bad_alloc异常

当使用  delete 释放一块内存的时候 , 有些编译器上delete 不能判断一块内存是不是由 new 申请的

如  :

  int  i = 0;

  int  *p = &i;

  delete  p;

  p = NULL; // delete 以后迅速置为NULL ,这是一个好习惯

这样的代码在许多编译器上都能编译通过,但是这是错误的,要注意

 

还有一个关于删除  0 地址指针的 问题

  delete  (char*)0;

C++ 保证 这条语句是正确的,但是他没有任何意义,不做任何动作

 

 

 

posted on 2013-07-27 17:11  wowk  阅读(170)  评论(0编辑  收藏  举报