资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

用NEW分配的一个类型需要Delete删除,但是这样呢?(谢谢了)

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

int   main()  
  {  
          int   dd   =   5;  
          int   *p   =   ⅆ  
          delete   p;  
          return   0;  
  }  
   
   
  这样对吗?     不是用New生成,也需要用Delete来删除吗?还有就是在C++中,是不是所有的变量都必须删除啊?

网友回答:

发表者:xcopy

绝对不行,dd是局部变量,在栈里,函数执行完毕会自动释放,new出来的对象在堆里,需要delete。

发表者:ch6130

这样可以样,用new分配的内存空间位于堆中,必须用delete删除,而其他的一般是存在于栈中,程序结束时系统自动删除。。

发表者:tupoh

应该是,new是分配内存空间,若不释放,就一直占用内存,造成坏死区bad   block,

发表者:skyhero

new跟delete是成对出现的.

发表者:021850524

new的东西必须用delete删除,   只能delete掉new出来的东西.

发表者:xuwj2000

这样不可以delete的,只有new的才可以delete  
   
  如果你这样的话,编译不会有问题,但是一运行,就会出错的。

发表者:11111

int   main()  
  {  
          int   dd   =   5;  
          int   *p   =   ⅆ  
          delete   p;  
          return   0;  
  }  
  晕,你这个程序根本就不用DELETE,return   0以后内存就完全释放了,windows下的程序宽松度很大,只要不是服务程序,一般不是放内存没什么太大问题,而乱是放内存会死的很难看

发表者:lingjingqiu

堆和栈是不同的,栈的指针不能用释放堆内存的方式释放。


 

 
热门推荐笔记本: 夏新笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved