You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求能占满全部内存的C语言小型程序实现方案

C语言实现占满内存的程序方案

你给出的C++程序核心是通过循环不断分配小内存块直至耗尽系统内存,对应的C语言版本可以用标准库的malloc函数实现,代码如下:

#include <stdio.h>
#include <stdlib.h>

int main() {
    while (1) {
        // 每次分配int大小的内存,不做释放
        void *ptr = malloc(sizeof(int));
        // 可选:分配失败时提示并退出循环
        if (!ptr) {
            printf("内存分配失败,已耗尽可用内存\n");
            break;
        }
    }
    return 0;
}

额外实现建议

  • 更快耗尽内存:一次性分配更大的内存块(比如1MB),减少循环次数,提升内存占用速度:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define BLOCK_SIZE (1024 * 1024) // 定义1MB的内存块
    
    int main() {
        while (1) {
            void *ptr = malloc(BLOCK_SIZE);
            if (!ptr) {
                printf("系统内存已耗尽\n");
                break;
            }
        }
        return 0;
    }
    
  • 强制占用物理内存:部分操作系统会采用惰性内存分配策略(仅分配虚拟内存,不占用物理内存),如果需要真正占满物理内存,可以在分配后写入数据触发物理内存分配:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define BLOCK_SIZE (1024 * 1024)
    
    int main() {
        while (1) {
            void *ptr = malloc(BLOCK_SIZE);
            if (!ptr) {
                printf("物理内存已耗尽\n");
                break;
            }
            memset(ptr, 0, BLOCK_SIZE); // 写入数据让系统分配物理内存
        }
        return 0;
    }
    
  • 注意:这类程序会耗尽系统可用内存,可能导致系统卡顿、无响应,建议仅在虚拟机或测试环境中运行,避免影响正常工作。

内容的提问来源于stack exchange,提问作者dhhdjdj bfjdjdfjfj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 18:10:28