需确认内容:
windows下,栈的大小是2MB,linux下,栈的大小是8MB;而申请堆空间的大小一般小于2GB。
测试方法:
windows下使用代码测试一下,直接在函数中定义数组。
qt代码添加按钮,并定义槽函数,槽函数实现如下:
void MainWindow::on_pushButton_clicked()
{
char buff[(int)(1024*1024*1.9)];
}
只做局部变量的内存申请,1024*1024表示1M内存。
测试结果:
当内存大小为1.9M时程序运行正常,超过2M后程序运行奔溃,从而确定内存空间中,栈的最大申请空间为2M。
在我们在函数内部创建参数的时候,哪怕是临时参数,也需要注意一下大小,特别是直接的数组。