什么是内存泄漏?我们如何避免?

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

null

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

内存泄漏对于守护进程和服务器之类的程序来说尤其严重,根据定义,它们永远不会终止。

C

/* Function with memory leak */
#include <stdlib.h>
void f()
{
int *ptr = ( int *) malloc ( sizeof ( int ));
/* Do some work */
return ; /* Return without freeing ptr*/
}


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

C

/* Function without memory leak */
#include <stdlib.h>;
void f()
{
int *ptr = ( int *) malloc ( sizeof ( int ));
/* Do some work */
free (ptr);
return ;
}


© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享