C/C++编程中,通过malloc、new等显式分配的内存空间或对象在使用完后,一定要释放,否则就会导致内存泄漏。内存泄漏可能会耗尽所有的内存,对于一个后台进程(如deamon)可能是致命的。
C中的标准内存分配函数:
malloc
calloc
realloc
内存释放函数:
free
另外C中的标准函数strdup也进行了内存分配,返回的字符串指针使用完后需要调用free函数释放。
C++中分配对象的关键字为new,释放对象的关键字为delete。
C和C++内存分配中的内存分配和释放一定要配对使用,不能混用。比如,malloc分配的内存,不要使用delete来释放;new分配的对象指针,不要使用free函数来释放。
检测一个C/C++代码是否存在内测泄漏,检测以上内存分配函数(或关键字)返回的指针在使用完成后,是否正确地被释放掉。如果没有释放或者没有正确地释放,就存在内存泄漏。
阅读(1877) | 评论(0) | 转发(0) |