数组越界奇葩现象:初闻不知曲中意,再闻已是意中人。
数组越界死循环奇怪问题:
这段极其简单的代码会造成什么样的结果呢。我们来简单分析一下:
1.局部变量定义在栈区,而栈区的内存使用一般是优先使用高地址。
2.i先定义,i的地址比数组高,所以在a[12]越界后,a[12]的地址恰好与i的地址一样,最后一次a[12]改为0,i就也被改成0了。程序就死循环了。
3.由于发生了死循环,即使越界了也不会报错,程序无法停下,无法报越界错误。
4,要按照不同的编译器来考虑越界几个会越界到i,不同编译器情况稍有不同。
5,在release版本中,编译器会主动优化,不会形成死循环,但打印结果是不对的,会打印13个hehe1
*****一下就是一个一个来印证猜想:
第一:光标一直闪动,程序死循环了,并且不会报数据越界对的错误。
第二个:release版本下的优化:会先定义数组,在定义i,这样数据地址会高于i,修改数组值不可能会改变i的值。
优化之后没有死循环,但是打印结果不会,数组只有10个元素,打印了13个。
第三:这样的代码是错误的,越界的,程序发布版本虽然会优化不会报错,但是结果也是不对,那就更麻烦大了。坚决不要写出这样的简单错误。
数组越界奇葩现象:初闻不知曲中意,再闻已是意中人。相关推荐
- 初闻不知曲中意,再听已是曲终人!哪首歌让你,而立之年泪流满面
初闻不知曲中意,再听已是曲终人. 曲中思念今犹在,不见当年梦中人. 人们常说"年少不听李宗盛,听懂已是不惑年",其实有些歌曲初听并无感觉,只是多年之后,在街头巷尾响起前奏,就令人心 ...
- 初闻不知曲中意 | 父母给我的爱刚刚好,感谢你们给过的陪伴
初闻不知曲中意,再听已是曲中人:曲中思念今犹在,不见当年梦中人. 时间是一条无垠的长河, 无论世事如何变迁, 它都奔腾着一往向前, 永不停歇. 我们每个时代, 每一年, 都有很多的歌曲诞生. 今日,就 ...
- 周星驰:初听不知曲中意,再听已是曲中人
01 知乎中曾有这么一个回答吸引到我:很多人说年少时看<大话西游>,看着看着就笑了:长大之后再看,看着看着就哭了:但不管是笑了还是哭了,心中总有很多疑惑无法解开. 一谈起大话西游,大家都是 ...
- 刘若英唱《后来》失控大哭:初听不知曲中意,再听已是曲中人
最近,一组刘若英在演唱会现场演唱<后来>泪流满面的视频图片,引起了无数人的心疼.也许很多人都不知道她为何会泣不成声,但是我想应该有人会懂,因为每个人都会有念念不忘的一首歌,也许藏了一个人, ...
- 杭州一行,感悟颇多。初闻不知曲中意,再见已然操千曲。
经历过了,才知道什么适合自己! 工作的抉择 杭州结缘 未来道路反思 感悟 工作的抉择 10月20日,大四上半学期,实训结束,年初之时从未想过考研,便跟着一起实训.如今结束,在过往的两个月投递过诸多公司 ...
- 数据类型、数组越界和宏定义引发的悲剧
小编在定义一个变量的时候,数据类型往往不会经过特别的考虑:在使用数组的时候,很多时候会忽略数组越界的问题,因为这个问题在C/C++编译器中是不进行检查的,越界不是编译.链接错误,运行时也未必会出错:但 ...
- C语言数组越界和内存分布
事情经过 11月3日晚,今天遇到了一个神奇的现象,一个大小为10的数组可以容纳200个数据,直接震惊我了! 今天发11月2日的参考代码,有一个同学给我看他的代码,大概是这样的 int main(){i ...
- Keil调试笔记:数组越界
概要:一个例子,两个思路,一些思考. 问题现象 struct bmm150_dev {/*! Chip Id */uint8_t chip_id;/*! Device Id */uint8_t dev ...
- 数组越界(DAY 30)
文章目录 1:引例1: 2:数组越界原因: 错误2: 总结: 1:引例1: 推荐文章1 推荐文章2 2:数组越界原因: 可以看到,我们reverse的a+6 超出了定义的数组的长度5 ,就出现了一个相 ...
最新文章
- 开源交换需新框架 技术团队也待整合
- Boost:是否支持sse4.1指令的测试程序
- java文件下载以及中文乱码解决
- 51单片机之特殊功能寄存器SFR
- java后端分页查询_java后端分页方案
- js php c语言for循环,JS for循环语句
- Awvs 12.x安装及使用教程超详细(包括录制脚本)
- Adams— 系统级多体动力学仿真平台
- 计算机组成原理(微课版 谭志虎)试题及答案
- 6123测试软件,OTP6123系列手持式OTDR测试仪
- win7计算机闪屏,win7电脑闪屏是什么原因
- 林达华——我的PhD生活
- 微信公众号第三方平台开发概况
- win8.1安装office2016
- DSN: Deep Subspace Clustering Networks
- adb install 安装APK Failure INSTALL_FAILED_ALREADY_EXISTS Attempt to re-install without first
- 开源夏令营《基于HackRF开发GPS信号仿真模拟器》开题报告
- 2020电工(初级)考试试题及电工(初级)模拟考试题库
- 使用变电站巡检机器人的两大优势
- 联盟营销者的5个电子邮件营销最佳实践(二)