#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int arr[] = {0};//定义数组有一个元素
printf("%d\n", sizeof(arr));//数组大小为4个字节
for (int a = 0; a < 10; a++)//内存访问越界
{
arr[a] = a;//可恶啊,后面的数字到底存哪里去了
}
for (int a = 0; a < 10; a++)
{
printf("%d", arr[a]);//推测编译器把数组首地址一直往后推,所以数字大概存在数组后面的地址
}
printf("\n");
printf("%d\n", sizeof(arr));//数组大小没变
return 0;
}
//最后结论
//能运行只是因为没有触发内存检测的哨兵
//也就是内存访问越界不是说一定就会直接崩溃,而是到了监测点的时候才会崩溃