问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

函数调用栈不够应该怎么办?

发布网友 发布时间:2022-04-22 17:56

我来回答

5个回答

热心网友 时间:2022-04-22 19:26

调整一个C程序栈的默认大小可以使用编译选项、连接选项或使用#pragma指令,具体用法视编译器不同,VC下可以使用 /Fnewsize 编译选项设置默认栈大小,其中newsize是以字节为单位,也可以使用/STACK:reserve[,commit]连接选项,使用#pragma指令的样式如下:
#pragma comment(linker, "/STACK:reserve,commit")
reserve和commit均以字节为单位,具体查看编译器帮助文档。
如果手工模拟函数的递归调用,则有范式可供转换,一般的数据结构书上都有介绍,具体操作难度要视递归调用的复杂度而定,一般样式如下:
//将初始值压栈
while(栈非空){
//取出栈顶元素
//处理该问题
//依据处理条件将子问题分别压栈
}
也可以使用一个线程来调用,为线程指定栈大小。
如果是递归调用导致栈溢出,建议LZ考虑更好的算法,增加栈的大小不是根本办法。

热心网友 时间:2022-04-22 20:44

没有太好的办法,一般如果涉及递归调用等,不断压栈,栈就不够了

办法--编译器可以改栈大小的,默认好像是64k,但建议不要改,看看程序上怎么优化下

不好模拟

热心网友 时间:2022-04-22 22:18

有2个问题需要澄清:
1.栈是一种后进先出的数据结构,只能在末端进行插入和删除的操作。应该说成是只能在线性表的一端进行插入和删除。说成末端,就认为的把线性表分成开始端和结束端了。但由于线性表中元素只具有线性关系,并没有明确的起始元素和终止元素。
2.函数调用之所以需要栈,是因为函数执行过程中,还能会嵌套调用其他函数,但无论嵌套调用多少个函数,总是要遵循一个原则:后被调用的函数要先运行完毕,程序要回到上一层函数的调用处继续运行,为了实现这个机制,才设计了栈这种后进先出的数据结构。如果把函数调用看成罗餐盘的话,而把当你去盘子的时候,肯定先取走最后一个罗上去的盘子,那么函数运行结束,函数调用返回就相当于你在取盘子。

热心网友 时间:2022-04-23 00:10

有2个问题需要澄清:
1.栈是一种后进先出的数据结构,只能在末端进行插入和删除的操作。应该说成是只能在线性表的一端进行插入和删除。说成末端,就认为的把线性表分成开始端和结束端了。但由于线性表中元素只具有线性关系,并没有明确的起始元素和终止元素。
2.函数调用之所以需要栈,是因为函数执行过程中,还能会嵌套调用其他函数,但无论嵌套调用多少个函数,总是要遵循一个原则:后被调用的函数要先运行完毕,程序要回到上一层函数的调用处继续运行,为了实现这个机制,才设计了栈这种后进先出的数据结构。如果把函数调用看成罗餐盘的话,而把当你去盘子的时候,肯定先取走最后一个罗上去的盘子,那么函数运行结束,函数调用返回就相当于你在取盘子。
另外,站长团上有产品团购,便宜有保证

热心网友 时间:2022-04-23 02:18

堆中建立栈呗。 动态分配空间。。
不知道你有没有学过栈了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
眼镜镜片配镜时没有注意左眼散光,镜子就没有配左眼散光,但是现在不舒 ... 好听的男主角名字大全554个 考研非得至少考个211吗? 考研是考211类的还是 普一本 招财风水吉祥物 效果最好的十大招财物 米6系统有什么特点 肉眼能看见的星星 都是银河系的么? sql2008怎样获取指定行的数据?谢谢 delphi运行错误——like 附近有语法错误??procedure TForm1.BitBtn6Cli... 求大神找找代码问题,'setXM' 附近有语法错误.我代码里根本没有‘setXM... 领导挖坑让你跳我该怎么办 CF的连跳是怎麽跳,超级跳我以及鬼跳不要烦我了如题 谢谢了 歌词中有一句 感觉跳跳我跳我的 什么歌? 猫老跳我脖子上为什么 挺进和漆黑的反义词是什么 滇西挺进纵队是什么意思 长驱直入的意思是什么? 进军的意思是什么 挺的近义词是什么?知道的说说啊! 庐山在黄山以北,嵩山以南吗? 白居易描写庐山的诗句有哪些? 挺进的近义词是 庐山地理位置和相关资料二十字 挺进的近义词是什么呢 庐山是在南部还是北部 还是在西部是在东部还是在西部? 挺进的挺是什么意思 梦见大便沾身有财运准吗 梦到自己大便粘身别人帮忙给弄干净,回家路上又出车祸,有亲人受伤,流血 现实生活中身上粘了一身屎是什么寓意? 挺进的意思 我明天选号买房子,需要注意什么呀,谢谢大家 vmware安装win10专业版要像在电脑上装系统一样需要激活码来激活吗? 在win7中设置视觉保护,将颜色设置成苹果绿…… 我用的是win7的本本,怎么设置保护眼睛的那个绿色。里面没有个性化啊T T急求!!! win7怎么把网页和字颜色换成护眼绿色,个性化→窗口颜色以后就没有高级了 深圳市科华网络公司搞的省多多是什么东西? 佛教吃饭时把碗端起来吃是什么意思? 省多多母婴用品购物商城是骗子公司,我被骗了好多钱,有何我一样被骗的吗? 糖耐量高怎么办 把碗收了什么意思 初中毕业怎么成考? 怎么在gif上画画手机 脑挫伤后左脑枕叶水肿,二个月后头疼的历害左半边头热的很这是什么原因这是为什么? _百度问一问 两岁十一个月了,这时候该上幼儿园吗? 小步在家早教靠谱吗?课程设计怎么样啊 买什么牌子的蓝光机好?? 推荐一下现在哪款蓝光DVD播放器比较好? 飞利浦和sony的蓝光播放机哪个好些呢?哪个的光头好些呢? 请问苏州那里有买DVD蓝光播放机