我在Windows下(我猜是10),使用Msys2进行开发。我正在编写一个程序,其中我需要一个大数组,但我不能使用动态内存。问题是,这个数组太大,无法适应调用堆栈,这会产生堆栈溢出。
我尝试用ulimit -s 100000更改调用堆栈大小。但我的程序还是崩溃了。当我使用相同的命令ulimit -s检查时,我得到了设置的限制。但是当我用getrlimit检查一个小程序时,我得到了默认值。
我在this thread中看到,我们可以用文件msys.bat更改一些Msys2配置值,但是找不到这个文件。
我的问题
如何更改windows/Msys2 2上的调用堆栈?
发布于 2019-12-18 14:08:46
通过指针传递大数组
#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;
}https://stackoverflow.com/questions/59393592
复制相似问题