Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91506
  • 博文数量: 14
  • 博客积分: 2070
  • 博客等级: 大尉
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-31 11:07
文章分类
文章存档

2011年(1)

2009年(4)

2008年(9)

分类: C/C++

2009-02-26 13:23:22

C/C++编程中,通过malloc、new等显式分配的内存空间或对象在使用完后,一定要释放,否则就会导致内存泄漏。内存泄漏可能会耗尽所有的内存,对于一个后台进程(如deamon)可能是致命的。

C中的标准内存分配函数:
malloc
calloc
realloc

内存释放函数:
free

另外C中的标准函数strdup也进行了内存分配,返回的字符串指针使用完后需要调用free函数释放。

C++中分配对象的关键字为new,释放对象的关键字为delete。

C和C++内存分配中的内存分配和释放一定要配对使用,不能混用。比如,malloc分配的内存,不要使用delete来释放;new分配的对象指针,不要使用free函数来释放。

检测一个C/C++代码是否存在内测泄漏,检测以上内存分配函数(或关键字)返回的指针在使用完成后,是否正确地被释放掉。如果没有释放或者没有正确地释放,就存在内存泄漏。
阅读(1832) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~