课程中说windows系统的默认栈大小是1M,那是不是在函数块内不能定义超过1M大小的数据?比如char acBuffer[2000]

来源:6-14 几种变量的对比

joeydonotcry

2021-07-31

void func()
{
	char acBuffer [2000];
}
写回答

1回答

quickzhao

2021-08-01

Widnows默认给一个线程1M的栈空间只是一个经验值,不同版本的系统可能会不一样。不用太过教条,但是给我们的启发时如果大量的空间处理,不要在栈上来完成(可以在堆里new出空间来操作),否则会overflow。VS2015编译器里可以手动修改栈保留空间大小,用于支持不同系统环境。

0
2
quickzhao
回复
joeydonotcry
不客气,继续加油!
2021-08-01
共2条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程