当前位置:首页 » 多媒体相关

请教一个关于new与delete的小问题。


我只知道当有一个类a的时候,用了p=new   a[10];应该用delete   []   p;  
  可我不知道用类似于p=new   char[10]的时候,应该用delete   []   p,还是直接delete p;  
  能讲解得深点吗?  
  谢谢,虽然问题有点菜。

推荐阅读

  • IT [详细内容]
  • 牛!CVC 256M MP3只卖299元 [详细内容]
  • 关于数据文件夹的规律 [详细内容]
  • 超小MP3手机 miniMOTO MS400亮相 [详细内容]
  • 甩了 DEC两款256MB MP3仅388元 [详细内容]
  • D108常见问题解答大全(一) [详细内容]
  • 12月19日全国各地降价手机汇总(上) [详细内容]
  • 网友回答:
    网友:sevecol

    p=new   char[10]  
      创建了10个char对象(数组)  
      所以删除的时候需要调用delete[]   p;  
       
      当你对使用new创建出来的数组的指针p使用delete   p的时候,数组的其他对象不会调用他们的析构函数。

    网友:zlj617

    如果用delete   p的话,那么相当于delete   p[0],漏掉了9个对象!

    网友:blh

    最好使用new   []   和   delete   []匹配

    网友:czylz

    一定要注意到“匹配”

    网友:jack_wq

    delete   []   p,注意匹配!

    网友:yjh1982

    同上...接分

    网友:sevecol

    在windows平台应该不会有内存泄漏吧。

    网友:sevecol

    但是其他对象如果也动态分配了内存,本来是在析构函数内delete的,可是由于析构函数没有执行,这样会产生内存泄漏。

    .

    讨论区

    Login