int main()
{int i = 0;int arr[10] = {1,2,3,4,5,6,7,8,9,10};for (i = 0; i <= 12; i++){printf("hehe\n");arr[i]=0;}return 0;
}

为什么会死循环?

arr数组只有10个数,但i循环到11,i下标越界(实际i=10时下标就越界,基于每个编译器和版本的区别,内存的布局有差异,vs2022在下标为11才会进入死循环),打印hehe出现死循环。

首先我们要明确两点:

1.栈区的默认使用规则:先使用高地址处的空间,再使用低地址处的空间,所以我们创建的变量i的地址其实是最高的地址,数组首元素的地址最低;

2.数组随着下标的增长,地址由低到高变化 ;

正常将arr[i]改为0,当i到10后,仍然会将空间的数改为0。随着数组下标的增长(i++),地址越来越高,有可能在高地址的数组元素恰好与我们创建的变量地址相同,当这种情况发生时,就会发生死循环:死循环的原因是i==arr[11],把arr[11]赋值为0相当于把i赋值为0。

i在内存的布局就是这样

调试实例2:研究死循环原因_赵思凯的博客-CSDN博客

for循环--下标越界导致死循环原因相关推荐

  1. c语言for死循环会一直执行吗,下面哪一个循环会导致死循环?() 答案:for (int k = 0; k 10; k--)...

    相关问题 (2分)两个卡诺循环如图4所示,它们的循环面积相等,则:: 卡诺循环 循环 面积 循环 功 可视分析的运行过程可看做是( )的循环过程: 可视分析 运行 过程 循环 过程 数据 知识 数据 ...

  2. 递归——函数在内部自己调用自己,那么该函数是递归函数 作用和循环效果一样 要加推出条件return,否则发生栈溢出,导致死循环 递归给数组中对象添加属性 toString()和随机数

    递归--函数在内部自己调用自己,那么该函数是递归函数 & 作用和循环效果一样 & 要加推出条件return,否则发生栈溢出,导致死循环 & 递归给数组中对象添加属性 & ...

  3. iPhone开发资料之内存管理 ,循环引用导致的内存问题

    iPhone开发资料之内存管理 ,循环引用导致的内存问题 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual ...

  4. drools规则引擎中易混淆语法分析_相互触发导致死循环分析

    整理了下最近在项目中使用drools出现的问题,幸好都在开发与测试阶段解决了,未波及到prod. 首先看这样两条规则: /*** 规则1_set默认利率a */ rule "rate_def ...

  5. 一个For语句导致死循环的例子

    在Java开发中常用到For循环,它对简化业务处理,提高效率,非常有帮助.但要防止程序算法中可能导致死循环的情况,而且有的死循环还不好察觉.比如下面这个例子,算法极容易认为是50,实际上是无穷大的一个 ...

  6. Electron+Vue3+Vite+Element-Plus,保持软后台全速运行(解决循环过多导致的界面不刷新问题,保证窗口失去焦点后setTimeOut可用)

    文章目录 Electron+Vue3+Vite+Element-Plus,保持软后台全速运行(解决循环过多导致的界面不刷新问题,保证窗口失去焦点后setTimeOut可用) 问题描述 问题一 大循环界 ...

  7. jquery validate submitHandler 提交导致死循环

    dom对像的提交form.submit();和jquery对像的提交$('').submit();功能上是没有什么区别的.但是如果用了jquery validate插件,提交时这二个就区别大了.$(' ...

  8. jQuery validate插件submitHandler提交导致死循环解决方法

    作者:海底苍鹰 地址:http://blog.51yip.com/jsjquery/1511.html dom对像的提交form.submit();和jquery对像的提交$('').submit() ...

  9. 面试官:说说java1.7HashMap头插法导致死循环的问题

    HashMap头插法会导致死循环问题 大家天天都说Java1.7Hashmap头插法会导致死循环问题 可是大家知道为什么嘛? 下面我们来详细讲解一下全过程: 首先hashmap头插法导致死循环问题是在 ...

最新文章

  1. Virtual Earth API 在指定zoomLevel添加自定义图层
  2. hdu1025 Constructing Roads In JGShining#39;s Kingdom (nlogn的LIS)
  3. ReactNative ES6简介 及基本语法第一篇
  4. python把矩阵堆叠成大矩阵_python numpy 矩阵堆叠实例
  5. 3.4 改进定向搜索
  6. JSK-15 单独的数字【位运算】
  7. hashcode的作用_【09期】说说hashCode() 和 equals() 之间的关系?
  8. 深度学习:文本检测数据集整理
  9. 史记十表-卷十九-惠景间侯者年表第七
  10. JZOJ6734. 【2020.06.18省选模拟】航行
  11. NLP(自然语言处理技术)
  12. 妹子,你早该放弃了...
  13. Android 模块化开发
  14. 存储简单数据——Preferences
  15. web服务之LAMPLNMP架构
  16. 保时捷上海车展阵容公布:新款Cayenne全球首秀
  17. 商家如何搭建一个完善的微信生态链
  18. 自走棋显示连接服务器就断了,赤潮自走棋无法连接服务器是什么原因
  19. 举个栗子!Tableau 技巧(202):用参数为图表设置开关按钮
  20. silverlight系列(Grid、Border、Sharp、Brush)

热门文章

  1. ubuntu如何安装有道词典
  2. du和df的使用及区别
  3. mysql 数据分组_详解MySQL 数据分组
  4. PCL:交互点选点云
  5. opus编解码的使用
  6. 软件测试常用的工具都在这里了
  7. Python编程之四书五经
  8. 论文阅读笔记(4)——《Language Generation with Multi-Hop Reasoning on Commonsense Knowledge Graph》
  9. python的100道简单习题,祝你成为python大神的小老弟
  10. 《MATLAB语音信号分析与合成(第二版)》:第4章 语音信号的线性预测分析