参看:Stack Overflow(堆栈溢出)
Visual Studio执行出现Stack Overflow,该怎么处理呢?

一、产生原因

Stack Overflow(堆栈溢出)是程序调试中比较麻烦的一种错误。但总结一下,引起这种错误的原因大致就是两种:

  • 变量申请大空间内存。
  • 递归。

二、解决方法

1、原因一: 局部数组变量空间太大

解决这类问题的办法有两个,一是增大栈空间(后文中有详细描述),二是改用动态分配,使用堆(heap)而不是栈(stack)。

解决方法 1

增大栈空间

修改 属性->链接器->系统 中 “堆栈提交大小” “堆栈保留大小” 的任意一个。

解决方法 2

动态内存分配

2、原因二:函数出现无限递归调用或者递归层次太深

void infinite_loop()
{infinite_loop();
}int main(int argc, char* argv[])
{infinite_loop();return 0;
}

解决方法:

找到使用递归的地方,并消除BUG。

PS: 之前有讲过什么是递归:
参看:数据结构与算法 – 再论递归

C语言再学习 -- Stack Overflow(堆栈溢出)相关推荐

  1. C语言再学习 -- 段错误(核心已转储)

    参看:Linux下的段错误产生的原因及调试方法 参看:Linux环境下段错误的产生原因及调试方法小结 参看:维基百科--Segmentation fault 参看:LINUX内核段错误调试详细指南精品 ...

  2. C语言再学习--关键字

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/53021879 C语言一共有32个关键字,如下表所示: 关键字 说明 auto ...

  3. C语言再学习 -- C 预处理器

    gcc/cc xxx.c  可以编译链接C源程序生成一个可执行文件 a.out 整个过程中可以划分为以下的4步流程: (1)预处理/预编译: 主要用于包含头文件的扩展,以及执行宏替换等 //加上 -E ...

  4. C语言再学习 -- 位操作

    一.二进制 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二",由18世 ...

  5. C语言再学习 -- 字符串和字符串函数

    最近身体很不给力,很乏累!白天没精神,晚上睡不着,心情还很烦躁.看书都有点看不下去的样子,到了C语言最难掌握的部分了,数组.指针.字符串.硬着头皮看书总结吧. 一.字符串 1.字符串介绍 字符串是以空 ...

  6. C语言再学习 -- 输入/输出

    一.缓冲区 输入字符的立即回显是非缓冲或直接输入的一个实例,它表示你说键入的字符被收集并存储在一个被成为缓冲区的临时存储区域中.按下回车可使你所键入的字符块对程序变成可用. 为什么需要缓冲区?首先,将 ...

  7. C语言再学习 -- 关键字return和exit ()函数

    终于到了最后一个关键字 return 了.感觉时间过的飞快,转眼间又是一年,如果时间可以 return 就好了. 一.return 介绍 参看:C语言中return 用法 1.含义: return 表 ...

  8. C语言再学习 -- 创建excel文件

    参看:C语言操作Excel表格 上一篇文章讲了一下 cJSON,可以生成json文件了.这篇文章讲一下怎么生成excel表xsl格式文件. 注意点: 1.文件类型为 xls 或者 xlsx 2.使用f ...

  9. C语言再学习 -- 再论内存管理

    之前有总结过内存管理,参看:C语言再学习 -- 内存管理 但现在看来,缺少示例.从新再写一篇文章,着重介绍常见内存错误.跨函数使用存储区.开始吧,再论内存管理!! 发生内存错误是件非常麻烦的事情.编译 ...

最新文章

  1. 学了编译原理能否用 Java 写一个编译器或解释器?
  2. lt;xliff:ggt;标签
  3. gulp加速hexo的yelee主题
  4. JAVA SE 7虚拟机规范
  5. 先科机顶盒一直出现android,网络电视机顶盒停留在开机界面,无法开机的解决办法...
  6. 中兴面试(含面试题)
  7. 纸张的规格A3.A4.A5.A6纸的尺寸大小
  8. 计算机显示不支持此接口,为什么会提示“不支持此接口”?提示不支持此接口的解决方法...
  9. Windows程序闪退原因查看方法----事件查看器
  10. 免费的网页截屏API有哪些?
  11. git出现 [rejected]master -> master (non-fast-forward)问题怎么解决
  12. 数学建模算法(1)—规划模型及其python实现
  13. 【下载】Step7 V5.4 中文版【绝对能安装使用】
  14. 公众号开发(三)----接收事件推送之关注/取消关注事件
  15. 4.Nginx优化,谁用谁说好
  16. 2019年,给你在成都必混IT界的几大理由!
  17. nth-child和nth-of-type的区别
  18. 依赖注入的正确打开方式 bilibili/kratos × google/wire
  19. Kotlin高仿微信-第35篇-支付-二维码收款(二维码)
  20. 微信H5棋牌游戏APP下载链接被屏蔽的解决办法

热门文章

  1. 恶作剧程序之炸弹窗口
  2. socket/WebSocket/WebService/http/https概念
  3. [SCOI2008] 奖励关
  4. 2017-2018-2 20179202《网络攻防技术》第一周作业
  5. bootstrap-datetimepicker bootstrap-datepicker bootstrap-timepicker 时间插件
  6. php Function split() is deprecated 的解决办法
  7. NGUI架构和Draw Call合并原理
  8. 纯CSS实现提示框小三角
  9. Matlab:图像数据保存
  10. Python学习笔记:面向对象编程(3)