如何添加带有主参数的更多堆栈?

问题描述 投票:-3回答:3

我正在尝试在程序中添加更多堆栈,但是我的程序使用带参数的main,但是我需要将main和args一起使用来测试porpuses,但是在这种情况下,如何添加_declspec和args呢?我添加了更多堆栈,因为我正在为安全性问题创建一些内容,但是如果不限制我的堆栈,我将无法展示完整的体验

_declspec(noinline) int old_main(int argc, const char* argv[]) {
    if (argc != 2)
    {
        printf("Usage: %s examlpe", argv[0]);
        exit(1);
    }
    char buf[MAX_BUFFER];
    strcpy(buf, argv[1]);
    printf("%s hi!\n", buf);
}

int main() {
    char moreStack[10000];
    for (int i = 0; i < sizeof(moreStack); ++i)
        moreStack[i] = i;

    return old_main();
}

c++ c stack
3个回答
1
投票

可能最简单的方法如下:


0
投票

如果您想要更多的堆栈,则在链接可执行文件时可能会有一个选项。


0
投票

假定Windows和MSVC为编译器,您似乎要寻找的是/F compiler flag/STACK linker flag。任一种都会调整可执行文件的主线程的堆栈大小。

© www.soinside.com 2019 - 2024. All rights reserved.