数组越界
程序员文章站
2024-03-15 13:48:11
...
数组越界是c语言学习经常会遇到的一个麻烦事。在C 语言中并不检验数组边界,数组的两端都有可能越界,从而使其他变量的数据甚至程序代码被破坏。那么什么是数组越界呢?
一般情况下,数组的越界错误主要包括两种:数组下标取值越界与指向数组的指针的指向范围越界。
今天我所讲的是数组下标取值越界。数组下标越界是由于变量名称不一致所致,是一个程序初学者最容易犯的错误之一。
首先我们以一个简单的以为数组为例:
#include<stdio.h>
int main()
{
int i;
int arr[10];
for(i=0;i<=10;i++)
{
arr[i]=0;
printf("%d\n",i);
}
return 0;
}
这里数组的长度定义为10,数组下标从0开始,到9结束,与生活习惯中的1-10不一样,于是产生一个a[10]的错误,即数组下标越界。
c和c++语言中数组下标越界,编译器是不会检查出错误的,但是实际上后果可能会很严重,比如程序崩溃等,就像这样
因此在我们编写程序时,要特别注意数组越界这一问题。
至于如何解决数组下标越界呢,我们需要注意使用的角标大于等于数组的长度或为负数。