提示

建议结合
https://www.bilibili.com/video/BV14st5z6EaA/?spm_id_from=333.1387.homepage.video_card.click
进行使用

#include <windows.h>
#include <stdio.h>

// 自定义内存分配函数,替代malloc
void* my_malloc(size_t size) {
    // 调用Windows API申请内存,MEM_COMMIT表示提交物理内存
    return VirtualAlloc(
        NULL,           // 让系统自动选择内存地址
        size,           // 申请的内存大小
        MEM_COMMIT,     // 提交内存(实际分配物理内存)
        PAGE_READWRITE  // 内存页权限:可读可写
    );
}

int main() {
    printf("开始申请内存,按Ctrl+C可终止...\n");
  
    // 无限循环申请内存,直到系统无法分配
    while (1) {
        // 每次申请1MB内存
        char* a = (char*)my_malloc(1048576);
      
        // 如果内存分配失败,说明系统资源已耗尽
        if (a == NULL) {
            printf("内存分配失败,系统可能已接近崩溃\n");
            // 短暂延迟后继续尝试,可能会触发系统不稳定
            Sleep(100);
        }
    }
  
    return 0;
}

#include<stdio.h>
int main(){
    while(1){
        char *a=malloc(1048576);
    }
}

TAG

此实验有风险。

上述代码均为测试代码,可能包含了更详细的注释,与实际视频中的代码可能不同。

最后修改:2026 年 05 月 26 日
如果觉得我的文章对你有用,请随意赞赏