Stackoverflow 与 Msys2

Stackoverfflow with Msys2

我在 Windows(我猜是 10)下,使用 Msys2 进行开发。我正在编写一个需要大数组的程序,但我不能使用动态内存。问题是,这个数组太大,无法放入调用堆栈,从而产生计算器溢出。

我尝试使用 ulimit -s 100000 更改调用堆栈大小。但是我的程序仍然崩溃。当我使用相同的命令 ulimit -s 检查时,我已经达到了我设置的限制。但是当我用getrlimit检查一个小程序时,我得到了默认值。

我在 this thread 中看到我们可以使用文件 msys.bat 更改一些 Msys2 配置值,但我找不到这个文件。


我的问题
如何更改 windows/Msys2 上的调用堆栈?

通过指针传递大数组

#include <stdio.h>

char large_array[100000000];

void myfunc (char *array, size_t size)
{
    for (int i=0; i<size; i++)
        //STUFF
}

int main()
{
    myfunc(large_array, sizeof(large_array)/sizeof(large_array[0]));

    return 0;
}