gpt4 book ai didi

c - Stackoverfflow 与 Msys2

转载 作者:行者123 更新时间:2023-11-30 16:08:17 24 4
gpt4 key购买 nike

我在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;
}

关于c - Stackoverfflow 与 Msys2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59393592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com