越界死循环

算法内容

本文件是 C/C++ 数组越界行为的实验代码。

代码定义长度为 5 的数组 a,但循环写入 a[0] 到 a[30],明显越界。越界写会破坏栈上的其他局部变量或控制信息,因此可能出现循环条件异常、输出异常、崩溃等未定义行为。这个文件的学习重点是:C/C++ 不会自动检查原生数组边界,越界访问不是稳定可依赖的行为,调试时可以借助 AddressSanitizer 等工具定位。

算法实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<vector>
#include<iostream>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;

int main() {
int x, i=0 ,a[5];
for(i = 0; i <= 30; i++) {
a[i] = i;
printf("%d:hello\n", i);
}
printf("%d:hello world!\n", i);
printf("%d:hello world!\n", x);

return 0;
}
作者

Meow Meow Liu

发布于

2022-10-05

更新于

2026-10-19

许可协议

评论