本文章的内容很危险,会导致电脑死机、蓝屏,请勿在实体机上尝试。
朋友要录视频,虚拟机里面养病毒,有一些经典的病毒,还有一些自己写的 C++ 程序。
我: C++ ? 我来,保证你电脑死机。
C++ 没有 GC(Garbage Collection, 垃圾回收)机制,一切病毒都要自己手动管理。
如果我疯狂申请内存,但是坚决不释放,就可以达到内存泄露的效果。
用 new 申请内存,用 delete 释放内存。如果不 delete 会在程序运行结束后由系统自动释放。(反正也结束不了)
内存泄露是指不用的内存没有及时释放一直占用空间。
1 | |
第一个版本可以导致巨量卡顿,但是会因为报错而退出。
为了解决这个问题只要套个 try 就行了。
这里用了一个 for 代替 goto ,也算是奇技淫巧了 (不是
1 | |
用 new 分配内存的效率不高,要想效率高需要用 malloc 。
malloc 在头文件 malloc.h 中。
函数原型:
1 | |
改进后的代码:
1 | |
NUM 是火力,小了可以成功运行,只要足够大就能榨干内存。
会申请 NUM * NUM 个 int 类型的存储空间,1 个 int 类型占 4字节 ,16384 * 16384 个 int 类型占 1G,普通电脑 NUM 打到 65,536 大概就受不了了。
请大家千(yí)万(dìng)不(shì)要(shì)把 NUM 打到这么高。
本文章的内容很危险,会导致电脑死机、蓝屏,请勿在实体机上尝试。
朋友要录视频,虚拟机里面养病毒,有一些经典的病毒,还有一些自己写的 C++ 程序。
我: C++ ? 我来,保证你电脑死机。
C++ 没有 GC(Garbage Collection, 垃圾回收)机制,一切病毒都要自己手动管理。
如果我疯狂申请内存,但是坚决不释放,就可以达到内存泄露的效果。
用 new 申请内存,用 delete 释放内存。如果不 delete 会在程序运行结束后由系统自动释放。(反正也结束不了)
内存泄露是指不用的内存没有及时释放一直占用空间。
1 | |
第一个版本可以导致巨量卡顿,但是会因为报错而退出。
为了解决这个问题只要套个 try 就行了。
这里用了一个 for 代替 goto ,也算是奇技淫巧了 (不是
1 | |
用 new 分配内存的效率不高,要想效率高需要用 malloc 。
malloc 在头文件 malloc.h 中。
函数原型:
1 | |
改进后的代码:
1 | |
NUM 是火力,小了可以成功运行,只要足够大就能榨干内存。
会申请 NUM * NUM 个 int 类型的存储空间,1 个 int 类型占 4字节 ,16384 * 16384 个 int 类型占 1G,普通电脑 NUM 打到 65,536 大概就受不了了。
请大家千(yí)万(dìng)不(shì)要(shì)把 NUM 打到这么高。