当程序员在堆中创建内存而忘记删除它时,就会发生内存泄漏。
对于守护程序和服务器之类的程序而言,内存泄漏是特别严重的问题,根据定义,它们永远不会终止。
/* Function with memory leak */
#include
void f()
{
int *ptr = (int *) malloc(sizeof(int));
/* Do some work */
return; /* Return without freeing ptr*/
}
为避免内存泄漏,在不再需要堆上分配的内存时,应始终将其释放。
/* Function without memory leak */
#include ;
void f()
{
int *ptr = (int *) malloc(sizeof(int));
/* Do some work */
free(ptr);
return;
}
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。