C++未定义行为-数组越界
我们先来看看下面的代码:
#include <iostream>
using namespace std;
const int N = 100010;
int a[N];
int main()
{for (int i = 1;i<=N;i++) a[i] = 2;return 0;
}
当我们写这段代码的时候,编译器就会发生这样的问题。
这是为什么呢???
其实是发生了数组越界。
a[n]里面能装n个数,可这是从0开始装的,当我们从1开始装的时候,最大的数组下标是n-1,可上面那段代码我们却让它给数组下标为n的数组赋值,因此发生了数组越界,也就是未定义问题。
改成如下代码即可:
#include <iostream>
using namespace std;
const int N = 100010;
int a[N];
int main()
{for (int i = 1;i<=N-1;i++) a[i] = 2;return 0;
}
注意:
#include <iostream>
using namespace std;
const int N = 100010;
int a[N];
int main()
{for (int i = 0;i<=N;i++) a[i] = 2;return 0;
}
这样也是越界,只要我们给数组下标为n赋值,就是越界。
C++未定义行为-数组越界相关推荐
- 数组越界(DAY 30)
文章目录 1:引例1: 2:数组越界原因: 错误2: 总结: 1:引例1: 推荐文章1 推荐文章2 2:数组越界原因: 可以看到,我们reverse的a+6 超出了定义的数组的长度5 ,就出现了一个相 ...
- java 数组越界异常_数组越界异常 求解决!!!
源自:4-3 滚动状态判断与处理 数组越界异常 求解决!!! package com.example.imooc; import java.io.BufferedInputStream; import ...
- 一道经典面试题讲解 :数组越界而没报错 ,却出现死循环 ?(C语言)
下面这道经典易错题出自<C陷阱与缺陷>,也一度被众多互联网公司作为面试题拿来考察,可见其易错程度与重点程度,下面我就给大家详细讲解一下这道列题,希望对大家有所帮助: 作为面试题: 下面我们 ...
- array,vector对象 数组越界检测
array,vector对象 数组越界检测 posted on 2017-11-15 16:20 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnbl ...
- cstring越界_try catch 捕捉数组越界异常
各位大牛,小弟又碰到问题了,捕捉数据越界异常,本人的代码是这样的 int func1() { char a[8] = { 0 }; a[10] = "9"; //此处数组越界 re ...
- 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )
文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...
- iphone NSArray 数组越界
问题:在将数据添加到数组中去的时候,出现如下错误 疑问为:使用[NSArray addObject:anObject] 竟然报出数组越界.-[__NSArrayM insertObject:atIn ...
- strcmp可以比较数组么_C语言数组越界了,后果很严重,如何避免?
素材来源:嵌入式ARM所谓的数组越界,简单地讲就是指数组下标变量的取值超过了初始定义时的大小,导致对数组元素的访问出现在数组的范围之外,这类错误也是 C 语言程序中最常见的错误之一.在 C 语言中,数 ...
- 198. 打家劫舍 golang 动态规划 数组越界
题目 198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会 ...
最新文章
- Linux 中文件管理常用的工具
- boost::polygon模块voronoi相关的测试程序
- 到底要不要考研?读完研究生就能找到好工作了吗?
- ThinkPHP的RBAC权限控制
- iOS项目开发实战——使用Xcode6设计自己定义控件与图形
- Android在片段之间传递数据
- BZOJ1768 : [Ceoi2009]logs
- Vue 打包静态文件路径设置
- linux UART(RS232/485)驱动实验
- html与word字体大小转换,word字号大小对照表 Word里面打印字体要多大???
- python本科毕业论文范文_【软件工程论文】软件工程论文范文(共40篇)
- nginx跨域配置、使用,docker部署nginx全流程(实测简单完整无坑)
- 联想Yoga C930 NM-B741 EYG70 Ariel-SVT笔记本点位图TVW
- PCIe/PCI插槽不够用怎么办
- 临湘东经子午线经度_经纬度与中央子午线查询表(精确到县级)
- python爬取文字和图片_Selenium_Chrome爬取文本和百度图片
- 更改Ansys Workbench的语言的方法
- cannot be resolved解决方法
- 聊聊千古名方逍遥丸【转载】
- 有趣的表情包购物网站
热门文章
- 【遥感数字图像处理】基础知识:第五章 遥感图像增强处理方法总结
- 回溯算法之购物车(0-1 背包问题)
- Android之如何判断设备是平板还是手机
- modbus调试工具 linux,linux libmodbus的移植
- 他是绝世天才,却只开了半辈子的挂!死后惨遭封号200年,这就是和牛顿抬杠的下场.........
- 学好数学建模,走哪买菜都不怕!
- 孩子不是笨,他和“最强大脑”差的是这个!
- 数模国赛要点与注意事项全分享!
- oracle中sum和count可以嵌套吗_【分享吧】Oracle查询转换
- python qt信号在qml 的使用_QML与Python通信