说一说什么是内存泄露,如何检测
内存泄漏通常是因为调用了malloc/new等内存申请操作,但是缺少了对应的free/delete。
为了判断内存是否泄漏,我们一方面可以使用Linux环境下的内存泄漏检查工具Valgrind,另一方面我们写代码的时候,可以添加内存申请和释放的统计功能,统计当前申请和释放的内存是否一致,以此来判断内存是否有泄漏。
内存泄漏分类:
内存泄漏通常是因为调用了malloc/new等内存申请操作,但是缺少了对应的free/delete。
为了判断内存是否泄漏,我们一方面可以使用Linux环境下的内存泄漏检查工具Valgrind,另一方面我们写代码的时候,可以添加内存申请和释放的统计功能,统计当前申请和释放的内存是否一致,以此来判断内存是否有泄漏。
内存泄漏分类:
得分点
概念、避免内存泄露、检测
参考答案
标准回答
延伸阅读
内存泄露示例代码:
上面的函数每当调用时,该函数都分配堆中的内存,但从不收回,从而导致了内存泄露。解决方案,在 return 语句之前添加 delete 语句释放分配的内存。即使添加了 delete 语句,有时也会有问题:
使用智能指针: