首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
什么情况下会栈溢出?如何避免?
[问答题]
什么情况下会栈溢出?如何避免?
添加笔记
求解答(0)
邀请回答
收藏(58)
分享
纠错
10个回答
添加回答
2
牛客330378763号
情况:1.局部数组过大;2.递归调用层次过多;3.指针或数组越界。 避免:目的:使用更大的空间。1.增大栈的空间;2.使用堆。(动态分配)
发表于 2022-10-01 11:38:42
回复(0)
4
炮专小菜狗
程序中局部变量太多了;局部数组的元素数量过大了;当有递归调用时,递归级数过多,也会快速消耗内存,导致栈溢出。避免栈溢出的方法实际上就两种。无外乎是栈内存设小了,自动数据多了自然就存不下了,溢出在所难免,所以设置更大的栈内存就可以避免。要么就是直接使用动态内存存储较大的局部变量,不用栈内存了,那也自然不会存在溢出了。 -------------------------------------- 指针或者数组越界通常不会直接导致栈溢出的。这种情况更容易产生的是内存访问错误,也就是segmentation fault。或者是一些未定义行为,又或者是导致数据损坏。反正一般是不会导致栈溢出的。上面的回答我觉得可能有问题。
发表于 2023-08-25 13:39:33
回复(0)
0
服了你个老六的猫头鹰很想六点下
1.递归太深 2.局部数组过大 3.指针或数组越界 避免方式: 增大栈内存,多使用堆
发表于 2025-06-02 19:37:06
回复(0)
0
小白白白a
1、局部数组过大 2、递归次数过多 3、指针越界
发表于 2025-03-29 13:21:01
回复(0)
0
悲惨世界的谋乐和苦行
1.局部数组过大 2.函数调用层次太多 3.指针或数组越界 避免:增大栈内存 多使用动态分配
发表于 2025-03-13 15:14:17
回复(0)
0
想堆雪人的退堂鼓鼓手正在背八股
数组过大,递归次数太多,指针数组越界,增大栈空间,改用动态分配
发表于 2024-10-24 19:38:27
回复(0)
0
在发呆的大熊猫很热爱生活
数组或者指针越界; 局部数组过大:当函数内部的数组过大时,有可能导致堆栈溢出 递归调用层次太多:递归函数云从事会执行压栈操作,当压栈次数过多的时候,也会导致堆栈溢出 解决方法:1、增大栈空间 2、改用动态分配使用堆空间heap,而不是栈空间stack
发表于 2024-10-22 19:57:03
回复(0)
0
嵌入式卡拉米
1、局部数组过大 2、递归层次太多 3、指针或者数组越界
编辑于 2024-03-16 15:06:40
回复(0)
0
SH久酒鸭
1.局部数组过大。当函数内部的数组过大时,有可能导致堆栈溢出。 2.递归调用层次太多。递归函数在运行时会执行压栈操作,当压栈次数太多时,也会导致堆栈溢出。 3.指针或数组越界。这种情况最常见,例如进行字符串拷贝,或处理用户输入等等。 解决这类问题的办法有两个, 一是增大栈空间,二是改用动态分配,使用堆(heap)而不是栈(stack)。
发表于 2023-09-01 17:13:10
回复(0)
0
秋招找到好工作
1、局部数组过大 2、递归层次太多 3、指针和数组越界 解决:增大栈空间或者改用动态分配
发表于 2023-08-07 15:24:17
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
内存技术
上传者:
real1993
难度:
10条回答
58收藏
1232浏览
热门推荐
相关试题
linux系统中,在物理内存管理过...
内存技术
评论
(0)
造成系统抖动的原因不包括()
内存技术
评论
(0)
关于内存页面置换算法描述,不正确的是()
内存技术
评论
(0)
如图 1 表示使用快表(页表)的虚...
编程基础
评论
(1)
订单表order_table全部记...
查找
数据库
数据分析
SQL
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题