探究 Windows 下编译的栈空间 以及 DEV C++工具栈空间的调整(设置)

本文探讨了程序中栈空间的默认大小,并分享了如何在DEV C++中调整栈空间,以应对深度优先搜索等算法可能导致的栈溢出问题。通过使用链接器选项-Wl,--stack=SIZE_STACK进行设置,其中SIZE_STACK是所需栈空间大小。在DEV-C++中,此设置可在编译器设置中完成,对于大栈空间需求,推荐使用64位编译。" 107115659,9330087,Android UI控件与布局详解,"['Android开发', 'UI设计', '布局管理', 'Android控件']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于堆栈的一些认识:

程序中变量的定义不是分配在堆上,就是在栈上。今天看了几篇讨论堆和栈的文章,里面讲到栈的默认大小可能是1m,也可能是2m,好奇之下试试。

int main (int argc, char *argv[])
{
        int tmp[600000] = {0};    tmp[1000]=100;  printf("%d",tmp[1000]);
}

大概就是2.1MB吧,出现了 [main] Test 3204 handle_exceptions: Exception: STATUS_STACK_OVERFLOW  28408 [main] Test 3204 open_stackdumpfile: Dumping stack trace to Test.exe.stackdump

代码1

#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
#define MinSize 1978*1024*1024/1000 
#define MaxSize 1979*1024*1024/1000 
 
#define StackSize MinSize

int main(int argc, char *ar
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值