编程介的小学生 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]元素;所以这个语句会出现数组越界

    评论

报告相同问题?

悬赏问题

  • ¥30 vmware exsi重置后的密码
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面