编程介的小学生 2020-01-11 21:58 采纳率: 20.5%
浏览 534

C语言开发的时候,什么是数组越界,一般都是什么原因造成的有什么危害呢

C语言开发的时候,什么是数组越界,一般都是什么原因造成的有什么危害呢

  • 写回答

1条回答 默认 最新

  • csujszxzcx 2020-01-11 23:03
    关注

    所谓数组越界(实际上是指数组下标越界)是指在引用数组元素时,被引用元素的下标超出了该数组中元素可能存在的下标范围,也就是说被引用用的元素实际上在数组中不存在。
    一般在循环遍历访问数组所有元素后(即循环结束后),再访问下标变量值所对应的元素,就会出现下标越界现象。
    例如:
    int a[10]; //定义由10个元素组成的数组a,元素分别是a[0],a[1],...,a[9]
    for (int i=0;i<10,i++)
    a[i]=i*i;
    cout<<a[i]; //这个语句属于循环结束后的语句,此时i的值已经等于10了,它实际上是试图输出a[10]元素;所以这个语句会出现数组越界

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)