原理:申请内存,将申请的内存做成链表,大量的吃内存,然后再释放掉
由于没做成通用版的,也想着是不依赖任何系统调用直接搞定这件事情
机子配置:i5 CPU 6GB内存
代码很简单 :
#include "stdafx.h"
#include "stdlib.h"
#include "windows.h"
#include "stdio.h"
#define MAX 2500
//#define MAX 20
typedef struct MEM{
double a[65536];
struct MEM *next;
} MEM ,*PMEM ;
int _tmain(int argc, _TCHAR* argv[])
{
MEM *pm = NULL;
MEM *next_tmp = NULL;
MEM head;
head.next = NULL;
int c = 0;
pm = head.next;
while(1){
pm = &head;
for(int i=0;i<MAX;i++)
{
pm->next= (MEM *)malloc(sizeof(MEM));
pm->next->next = NULL;
pm = pm->next;
printf("the i is :%d \n", i);
Sleep(10);
}
pm = NULL;
pm = head.next;
for(int j = 0;j<MAX;j++)
{
printf("the j is :%d \n", j);
next_tmp = pm->next;
free(pm);
pm = next_tmp;
Sleep(10);
}
}
printf("press any key to exit !\n");
scanf("%d",&c);
printf("the c is %d\n",c);
return 0;
}
上一个结果图