分享

什么是数组下标越界 | 高时银博坛

 昵称44536861 2017-07-06

数组下标越界:是一个程序初学者最容易犯的错误之一。C++编译器是根据元素的大小(类型)和编号(下标)来计算数组中一个值存放在哪里的。

 

例如:定义一个数组int a[4]; 而a[2]是这个数组的一个元素,因为该数组类型是整型,而整型变量占地址内存4位,所以a[2]的值应存放在4*3字节处。下标是从0开始的,所以如果要写入a[4]的值,就是数组下标越界,该数组的最大下标是3。但编译器不管,它照样写入,这样一来,它会写入到其它的内存地址,如果该内存地址中原来存有数据,这些数据就会被修改,那就出现错误,甚至程序崩溃。

形象一点地说,打个比方,把数组比作一个杯子,这只杯子只能装400ml的水,而我们一下子倒了500ml的水,那么这个杯子装满400ml的水后,剩下的100ml 的水就装不进这个杯子了,这100ml 的水就会溢到旁边的装有酱油的杯子里。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多