永发信息网

c++栈溢出怎么解决?

答案:2  悬赏:80  手机版
解决时间 2021-02-06 14:38
c++栈溢出怎么解决?
最佳答案
一般每个进程的栈空间是限定的。(为什么限定?去学汇编和操作系统就知道)

什么占用栈空间?
除去系统栈占用外,基本就是栈变量。(什么是栈变量?无语¥%*&……%¥%&)
简单来说上面那个a就是栈变量。

修改有两个办法:
一 改为堆变量:
int* pa = malloc(sizeof(int)*1000*1000);
然后可以将pa当数组用。(数组和指针在C里基本等同)
当然,不用了记得free pa。

二 修改系统限制
这个栈变量= 1000*1000*4 = 4M。(约等于)
如果这个函数不频繁调用,也不递归,一般还是可以接受。
可以修改操作系统对进程栈空间的大小限制,稍微调大一些。
ulimit查看系统的限制。(*nix系统命令。不是windows的)

当然方法二非常不值得推荐
全部回答
说明递归层数过多(至少上万了)
原因是写的有问题,没设置正确的退出条件;
也有可能是就是得递归那么多层,这时可以考虑将函数递归改成利用std:stack实现递归,这样能容忍的层数会多很多,只要内存够。
丛程序是快速排序来看,更有可能是算法写错了,导致递归无法终止。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
0048香辣虾呼和浩特市旗舰店这个地址在什么地
委赖的意思是什么啊?知道的请说下!
拔去尽根牙会对身体有什么伤害?
韩国、新加坡、卡塔尔、俄罗斯、南非这些国家
2. 编写一个应用程序打印1~5之间数的阶乘 输
山西省 吕梁市 交口县 双池镇 申通能到吗
家景园地下停车库我想知道这个在什么地方
以下高压钠灯适用的场所是()。A.美术展厅B.库
审拟的意思是什么啊?知道的请说下!
美国向国内的工行汇款,资本金帐户.需要几天才
中国移动通信手机专卖(金花桥通讯店)在哪里啊
德州宝马驾校教练场地址有知道的么?有点事想
【2012数学建模】2012年数学建模所有题都得完
急求挖掘机电脑板说明书及示意图
乔振宇为什么红不起来?
推荐资讯
险坂的意思是什么啊?知道的请说下!
馈餫的意思是什么啊?知道的请说下!
1.背景某公司中标承建日消纳量为200t的大型
现在是不是停办摩托车驾驶证????
我14岁女,想真空上学可以吗?
怎么去单努比阿门酒店
上海劲能汽车销售有限公司怎么样?
我有两个硬盘,一个120g固态,一个2t的机械
河南省淅川县荆紫关镇第四初级中学怎么去啊,
中通速递(卫滨区四部)地址有知道的么?有点事
【告诉的英文】告诉的英文单词只写单词!
Windows7系统下怎么打开AMD独显
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?