警告:仅能对确知已存在的元素进行下标操作
来源:互联网 发布:cacti syslog无数据 编辑:程序博客网 时间:2024/05/22 04:51
对于下标操作符([]操作符)的使用有一点非常重要,就是仅能提取确实已存在的元素,例如:
vector<int> ivec; //empty vector
cout<<ivec[0]; //error:ivec has no elements!
vector<int> ivec2(10); //vector with 10 elements
cout<<ivec[10]; //error:ivec has elements 0...9
试图获取不存在的元素必然产生运行时错误.和大多数同类错误一样,不能确保执行过程可以捕捉到这类错误,运行程序的结果是不确定的.由于取不存在的元素的结果标准没有定义,因而不同的编译器实现会导致不同的结果,但程序运行时几乎肯定会以某种有趣的方式失败.
本警告适用于任何使用下标操作的时候,如string类型的下标操作,以及将要简要介绍的内置数组的下标操作.
不幸的是,试图对不存在的元素进行下标操作是程序设计过程中经常会犯的严重错误.所谓的"缓冲区溢出"错误就是对不存在的元素进行下标操作的结果.这样的缺陷往往导致PC机和其他应用中最常见的安全问题.
- 警告:仅能对确知已存在的元素进行下标操作
- 对一个数组,按照给定的下标进行排序,仅使用两两交换的方式
- 对JQuery进行下标操作得到的是js对象
- 对集合的存在的元素(存在重复的元素)进行字典排序
- 编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,基数下标的元素不变
- 操作偶数、奇数、指定下标的元素
- 【数据结构】对一个数组按给定的下标排序,仅使用两两交换的方式,要求不能对数组进行扩容尽可能使用额外少的空间
- 添加元素 下标操作
- SQLServer 2005 海量数据解决方案(分区表)与对已存在的表进行分区
- SQLServer 2005 海量数据解决方案(分区表)与对已存在的表进行分区
- SQLServer 2005 海量数据解决方案(分区表)与对已存在的表进行分区
- 在命令行使用已存在的keystore对apk包进行签名
- MySQL+Mybatis批量插入时对已存在的记录进行更新
- 创建自己的结构元素对图象进行操作
- 网站已存在对项目的引用
- 对已有的数据表进行分区操作
- vbs操作已存在的ie
- vb.net “已创建对嵌入的互操作程序集“stdole”的引用“警告的清除
- c#word常用操作
- 最牛小强病毒网上作乱 主使网站获利惊人
- applet 摄像头实现
- 《就业、利息和货币通论》
- java中用poi读取Excel文件
- 警告:仅能对确知已存在的元素进行下标操作
- 用于调式midlet的canvas
- SMT过程缺陷样观和对策
- ArcView GIS 应用与开发技术(8)- 利用空间关系累加数据
- java中创建Excel文件
- NextRecordset 和 GetRows
- CArray类学习
- ASP + XML + JavaScript 实现动态无限级联动菜单
- 啊啊啊啊