原理很简单,就是不停的利用malloc函数申请动态分配内存,直至系统再也不能给你分配了,恭喜你就成功的把你电脑搞死机了,我试过最后QQ都掉线了。
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define PAGE_SZ (1<<12) //定义移位,移位12位后得到的大小使4k,其大小使windows系统一页的大小
void main()
{
int i;
int gb=1;
for(i=0;i<((unsigned long)gb<<30)/PAGE_SZ;++i)
{
void *m=malloc(PAGE_SZ);//申请一页的内存,首指针为m
if(!m)
break;
memset(m,0,1);//将此页所有内存单元逐字节填满0
}
printf("allocated %li MB\n",((unsigned long)i*PAGE_SZ)>>20);//输出打印结果
getchar();//按回车键结束程序
}
为了不让电脑死的一去不复返,加了一个getchar()函数,接收按键输入终止掉这个程序。