当前位置: 首页 >> 程序设计 >> c内存系列之内存泄露
 

c内存系列之内存泄露

作者:      来源:xianglinyan.cublog.cn     发表时间:2006-06-03     浏览次数:      字号:    

  1.当你不再需要一块内存空间时,必须对指向它的指针使用关键字delete。它的作用是释放内存.把它交还给自由存储区。一定要记住:与所指向的内存区域不同,指针本身是个局部变量。当声明指针的函数返回时,指针的作用域也就结束了,因此被丢弃了。然而,使用关键字new分配的内存不会被自动释放,于是这决内存不能由其它他数据使用。这种情况我们称之为内存泄漏。这种情况被称为内存泄漏是因为直到程序结束内存才能够恢复使用,就好像汁算机“丢掉”了这块内存一样。要把内存释放给自由存储区,使用关键字delete。例如:
    delete pPointer;
    当你使用delete删除一个指针时,你所他的实际工作是释放该指针指向的内存空间。这相当于把它指向的内存空间归还给自内存储区。而这个指针仍然存在,可以再次对它赋值。

 

     2.另一种可能造成内存泄露的情况是:在没有删除一个指针之前就对其重新赋值。考虑下面的代码:

int *pPointer=new int;

*pPointer=72;

pPointer=new int;

*pPointer=84;

因此,在程序中每次使用new都应当先对它delete一次。保持对指针指向的内存区域的跟踪和保证在使用完之后还给自由内存区域时很重要的。

责任编辑 webmaster

 
 
 
 
 
评论更多>>
 
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •