问题描述
- C语言数组越界的含义
-
听同学说C语言数组越界会导致出错,我试验了下不会,谁能写一个数组越界出错的例子?
解决方案
这个不一定能观察到,因为C没有越界检查,你可以这么写:
int a[10];
int i=0;
while (true)
{
a[i++] = i;
}
肯定会报错
解决方案二:
越界不就是超过数组的大小,随便写个拷贝就行了
解决方案三:
例如你声明数组a[10],如果访问a[10]就发生越界错误,越界错误的本质是访问了未知内存空间,如果之前此区域内存被使用后,此时访问获得的数据是之前存的数据,至于报错在vc中是随机的。在linux系统下使用gcc编译器直接报段错误
时间: 2024-10-01 15:19:40