当程序员在堆中创建内存并忘记删除它时,就会发生内存泄漏。
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