|  |      1tool2d      2023-10-16 16:47:05 +08:00 stack 肯定有啊,编译器参数里就有。heap 一般是系统维护的,不能自己设置。 感觉问一下 gpt ,比发帖等回复要快。 | 
|      2cnbatch      2023-10-16 16:55:03 +08:00 哪个系统? 单论 Windows 的话,有: 设置栈大小: https://learn.microsoft.com/en-us/cpp/build/reference/stack-stack-allocations 设置堆大小: https://learn.microsoft.com/en-us/cpp/build/reference/heap BSD 与 Linux ,可以自己设栈大小: https://stackoverflow.com/questions/2275550/change-stack-size-for-a-c-application-in-linux-during-compilation-with-gnu-com https://linux.die.net/man/2/setrlimit https://man.freebsd.org/cgi/man.cgi?query=setrlimit 关键点:setrlimit(RLIMIT_STACK 至于堆大小,那就把 RLIMIT_STACK 换成 RLIMIT_AS | 
|  |      3tool2d      2023-10-16 17:00:45 +08:00 @cnbatch 感觉 windows 设置堆大小没意义吧。内存页面增长大小都是 OS 进行管理的,exe 总占用内存也是系统剩余内存多少决定的。 | 
|      5TESTFLIGHT2021 OP @tool2d 32 位应用寻址空间<4G stack 起始 结束 应该有限制吧 | 
|      6TESTFLIGHT2021 OP @cnbatch https://learn.microsoft.com/en-us/cpp/build/reference/stack-stack-allocations?view=msvc-170 按照这个 stack 大小是 1MB 但是实际好像没管过这个,或者可能超过这个值了,好像也没问题啊? | 
|      7cnbatch      2023-10-16 17:50:46 +08:00 @TESTFLIGHT2021 确定没问题? WIndows MSVC ,试试这段: #include <iostream> int main() { char test_stack[1024 * 256 * 2]{}; test_stack[0] = 'E'; printf("%s\n", test_stack); return 0; } 还有这段: #include <iostream> int main() { char test_stack[1024 * 1024 * 2]{}; test_stack[0] = 'E'; printf("%s\n", test_stack); return 0; } 一个未超出 1M ,另一个远超 1M ,看看有没有问题 | 
|      8TESTFLIGHT2021 OP @cnbatch 我试试 我平日都是 new delete new 有时候好几 MB 的空间。。。好像也没出问题 | 
|  |      9liuhan907      2023-10-16 18:27:26 +08:00 @TESTFLIGHT2021 new 那是堆空间当然没问题 | 
|  |      10labubu      2023-10-17 10:33:24 +08:00 vs 在项目设置里面有 | 
|      11lff0305      2023-10-17 10:34:03 +08:00 Win 平台上在 CreateThread 的时候可以设置, HANDLE CreateThread( [in, optional] LPSECURITY_ATTRIBUTES lpThreadAttributes, [in] SIZE_T dwStackSize, [in] LPTHREAD_START_ROUTINE lpStartAddress, [in, optional] __drv_aliasesMem LPVOID lpParameter, [in] DWORD dwCreationFlags, [out, optional] LPDWORD lpThreadId ); | 
|      12TESTFLIGHT2021 OP @lff0305 创建的线程 stack 和主线程可以不一样? |