1. 主页
  2. 文档
  3. C语言教程
  4. C语言内存管理
  5. 如何避免内存泄漏

如何避免内存泄漏

当程序员在堆中创建内存并忘记删除它时,就会发生内存泄漏。 

内存泄漏的后果是它通过减少可用内存量来降低计算机的性能。最终,在最坏的情况下,可能会分配过多的可用内存,并且系统或设备的全部或部分停止正常工作,应用程序失败,或者系统速度大大降低。

对于像守护进程和服务器这样的程序来说,内存泄漏是特别严重的问题,这些程序根据定义永远不会终止。

/* Function with memory leak */
#include <stdlib.h>

void f()
{
int *ptr = (int *) malloc(sizeof(int));

/* Do some work */

return; /* Return without freeing ptr*/
}

为避免内存泄漏,堆上分配的内存应始终在不再需要时释放。

/* Function without memory leak */
#include <stdlib.h>;

void f()
{
int *ptr = (int *) malloc(sizeof(int));

/* Do some work */

free(ptr);
return;
}

 

这篇文章对您有用吗?