c - 增加二进制可执行文件的大小

标签 c

抽象题: 我在 C 中有一些代码。 编译后可执行文件有 604 KB。 我希望它更大,比如 100 MB。

如何实现?

我可以声明一个字符串来增加二进制文件的大小,但是有没有更具扩展性的解决方案。也就是说,我想在不将源代码增加 N 字节的情况下将编译后的大小增加 N 字节。

 char* filler = "filler"; // increases compiled size only by few bytes

用例: 我正在开发固件,并测试远程固件升级功能。我想看看当固件又大又重时它会如何表现。

最佳答案

这会在使用 gcc 编译时创建一个 100MB 的可执行文件:

#include <stdio.h>
#define SIZE 100000000

char dummy[SIZE] = {'a'};

int main(void){
    dummy[SIZE-1] = '\n';
    if(dummy[0] == 'a')printf("Hello, bloated world");
    return 0;
}

通过在 main 之外定义数组,您不会炸毁堆栈。通过使用数组,gcc 不会优化它。

关于c - 增加二进制可执行文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43520681/

相关文章:

c - 如何在 Visual C++ IDE 中将 sizeof enum 设为 C 中的 char 大小

javascript - C:字符串操作和 Arduino

c - 如何在文件末尾添加数据

c - 结构对齐问题

c++ - 跳过第 3 方库中的 #define

c - Linux从文件中读取奇怪的行为

c - 将值递增到特定值,然后递减回初始起点?

java - 无法使用套接字接收字符串

C - 一个非 INT 函数示例?

c - 在结构中设置 void* 的第 n 个成员(以及结构名称用法与 typedef)