面试题答案
一键面试内存泄漏代码示例
#include <iostream>
int main() {
int* arr = new int[10];
// 逻辑问题,没有释放内存就返回了
return 0;
}
修改代码以避免内存泄漏
#include <iostream>
int main() {
int* arr = new int[10];
// 这里进行数组的操作
// 使用delete[]释放分配的内存
delete[] arr;
return 0;
}
解释:在第一段代码中,使用new[]
分配了一个包含10个int
类型元素的数组内存,但在函数结束前没有使用delete[]
释放该内存,从而导致内存泄漏。在修改后的代码中,在数组使用完毕后,使用delete[]
操作符正确地释放了之前分配的内存,避免了内存泄漏问题。