搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Cpp五条
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
《幻兽帕鲁(Palworld)》v0.1.2.0官方中文豪华版 一键安装硬盘版【百度/天翼】_帕鲁pc中文版百度云
2
C语言:数组的地址和数组首元素的地址的区别
3
【Python】python乌龟画图——利用python乌龟绘画奥运五环_turtle画运动会海报
4
网络爬虫-拼多多_拼多多爬虫
5
HDU - 6602 Longest Subarray(线段树+思维)_hdu6602
6
PostgresSQL HA高可用架构实战
7
MQTT主题通配符_paho-mqtt 通配符
8
C++迭代器 iterator
9
2021-09-14_usbdm
10
LLM@本地语言大模型@Gemma的安装与使用@dockerDesktop的安装和启动
当前位置:
article
> 正文
递归导致内存溢出_递归为什么会引起内存溢出
作者:Cpp五条 | 2024-02-19 17:59:02
赞
踩
递归为什么会引起内存溢出
递归在分析问题的时候很方便,但是在写实现的时候开销却很大,尤其是当递归层数太深的时候,内存就会溢出
java里面JVM的机制在调用函数的时候任然是进栈和出栈,所以极易导致栈内存溢出,错误类型
java.lang.StackOverflowError错误
几天写的一段代码就出现了这个问题。
大概结构是这样的:
A(){
if(){}//递归终止条件
else(){
for(){
A();//这里进行了一个递归,当for循环次数过多,而且递归终止条件难以达成的时候,栈内存就会溢出
}
}
}
摸索了很久(确实是摸索,网上的资料都不太合适,基本上原因知道了,但是解决方法都是说修改代码,但是具体怎么改没有具体的例子),就这个结构的来说,换成下面的样子就可以
A(){
if(){}
else{
B()
}
}
B(){
for(){
A()
}
}
比较两种写法,第一种写法不断的递归,函数嵌套层数过多最后导致栈内存溢出,而第二种写法将循环的部分放到了另外一个函数,进入B的时候A已经结束了,其占用的栈内存可以得到释放,所以没有过多的函数嵌套。
具体全面的递归优化请google,这里只是我遇到的一种情况和自己的解决方法。共勉
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Cpp五条/article/detail/116128
推荐阅读
article
react
+
antd
form
动态
添加时,
删除
元素没有及时
渲染
问题解决_
react
动态
删除
表单项渲...
react
+
antd
form
动态
添加时,
删除
元素没有及时
渲染
问题解决_
react
动态
删除
表单项
渲染
出现问题
react
...
赞
踩
article
Unity3d
发布
WebGL
+
创建
IIS
服务器
+部署阿里云
IIS
服务器
详细步骤+问题解决(图文详情)...
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入...
赞
踩
article
LIO
-
SAM
实测运行_
4.2
gtsam
...
文章目录_
4.2
gtsam
4.2
gtsam
文章目录 1. ...
赞
踩
article
python
几何图形
turtle
库_
python
turtle
用
circle
画多边形...
python
turtle
python
几何图形
turtle
库goto()dot()penup()和pendown()随机...
赞
踩
article
2D基本
图形
的Sign
Distance
Function (
SDF
)详解(下)_
signed
di...
符号距离函数(sign
distance
function
),简称
SDF
,在光线追踪领域有很重要的应用。本文分析了sha...
赞
踩
article
antd
表单
验证_
antd
表单
校验...
antd
表单
验证大致可以分为两种一种是 提交按钮在 在 Form.Item 内部一种是提交按钮在 在 Form.Ite...
赞
踩
article
ps
-
aux
|
grep
详细信息...
ps
a 显示现行终端机下的所有程序,包括其他用户的程序。2)
ps
-A 显示所有程序。 3)
ps
c 列出程序时,显示...
赞
踩
article
1.
Grasp
Net-
API
之
Grasp
Lable
Format
_
graspnetapi
...
1.
Grasp
Lable
Format
1.1 Raw
Lable
Format
(原始标签格式)(1)Labels o...
赞
踩
article
python
+OpenCv+
dlib
实现
人脸
68个
关键点
检测
并标注_
人脸
检测
68个
关键点
基于
人脸
的
解...
寒假跟着老师做科技部
的
项目,主要做微表情
的
检测
。刚开始一头雾水,在研究了两天之后,渐渐找到了一点感觉。 ——这里主要实现...
赞
踩
article
使用
PerfView
诊断
.Net
GC
的问题...
PerfView
概述:
PerfView
是一个可以帮助你分析CPU和内存问题的工具软件。它非常轻量级也不会入侵
诊断
的程序...
赞
踩
article
php
基础学习之
匿名
函数
...
允许临时创建一个没有指定名称的
函数
,使用
匿名
函数
可以方便地创建一次性或临时的功能块。
php
基础学习之
匿名
函数
...
赞
踩
article
使用
u
-
table
/
u
x-
grid
虚拟
滚动解决
el
-
table
数据量大渲染卡的问题、及
表格
根据
浏览器
...
u
-
table
的使用方法和
el
-
table
没什么区别。这里必须加的两个属性,不加的话无法实现
虚拟
表格
,页面一样会卡死,第...
赞
踩
article
什么
是
尾
递归
,
尾
递归
的
优势以及
语言
支持
情况说明_
支持
尾
递归
优化
的
语言
...
今天在进行数据排序时候用到
递归
,但
是
耗费内存太大,于
是
想找一找有没有既提升效率又节省内存
的
算法,然后发现
尾
递归
确实不错,...
赞
踩
article
ES6
中
箭头
函数
的
使用
_
es6
es7 双
箭头
函数
...
基本用法
ES6
允许
使用
“
箭头
”(=>)定义
函数
。 var f = v => v;上面的
箭头
函数
等同于: var f = ...
赞
踩
article
antd
react
的
from
表单
校验
几种常用
的
方式_
react
form
表单
的
检验...
先上图:点击保存时
表单
不
校验
,其余单独
的
字段比如组织机构、年度、月度
校验
点击保存并提交时,
表单
也要检验:一、
表单
的
校验
对...
赞
踩
article
PerfView
洞察那些 C#
代码
中
的
短命
线程
...
一:背景 1. 讲故事这篇文章源自于分析一些疑难dump
的
思考而产生
的
灵感,在dump分析中经常要寻找
的
一个答案就是如何...
赞
踩
article
Unity
中
URP
下的
半透明
效果
实现_
unity
urp
fade
...
URP
下的透明
效果
的实现方式,和BRP下的实现是一样的。我们在上一篇文章实现了菲涅尔
效果
的基础上,继续添加
半透明
效果
。_...
赞
踩
article
python
之
turtle
库
学习
(
海龟图形
)
_
python
turtle
...
python
之
turtle
库
学习
这两天在一个公众号里看到一个文章好玩的库,今天来
学习
一下。Github地址一。方法1.f...
赞
踩
article
python
中
circle
函数
的用法_
python
中
circle
(
70
,
20
)什么意思...
Python
中
的
circle
函数
用于绘制圆形,是Python
中
非常基础和重要的
函数
之一。_
python
中
circle
(7...
赞
踩
article
算法
——
递推
算法
...
递推
算法
给定一个数的序列H0,H1,…,Hn,…若存在整数n0,使当n>n0时,可以用等号(或大于号、小于号)将Hn与其...
赞
踩
相关标签
react.js
javascript
前端
unity
WebGL
IIS
unity3d
python
pygame
计算机图形学
GLSL
shadertoy
SDF
渲染
css3
深度学习
opencv
dlib
php
学习笔记
css
vue.js
elementui