欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数组的越界访问

程序员文章站 2024-03-15 13:53:35
...
#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int i=0;
for(i=0;i<=12;i++)
{
printf("哈哈\n");
}
return 0;
}

我们知道,内存中栈区的使用习惯是先使用高地址空间,再使用低地址空间;而且数组随着下标的增长,地址也是由高到低变化的。
程序中先创建了i;再创建了arr数组,数组越界访问是有可能访问到 i,改变了 i 的值,导致了这段程序死循环。
数组的越界访问

arr[12]的地址与i相同
改变arr[12]=0,即i=0,代码死循环。

相关标签: 笔记