内存泄漏
- 内存泄漏(Memory Leak) - 是指程序中己动态分配的堆内存由于某种原因程序未释放或 无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
#include <iostream>
#include <Windows.h>
using namespace std;
void A_test() {
//分配内存
int* p = new int[1024];
//访问内存
p[0] = 10;
//没有释放内存
}
void B_test() {
//分配内存
int* p = new int[1024];
//访问内存
p[0] = 10;
//释放内存
delete[] p;
}
int main(void) {
//由于A_test分配动态内存, 使用后没有进行释放
//导致程序占用内存超过 2G 最后程序崩溃
/*for (int i = 0; i < 100000000; i++) {
A_test();
Sleep(50);
}*/
//由于B_test分配动态内存, 使用后进行释放
//程序正常运行
for (int i = 0; i < 100000000; i++) {
B_test();
Sleep(50);
}
system("pause");
return 0;
}