一句话理解
int p = nullptr;
为什么要学
后面写更大的程序时,UB 会反复出现。先在小例子里跑通。
讲解
例如:
int* p = nullptr;
*p = 10;
可能产生 UB。
常见 UB:
- 数组越界
- 空指针解引用
- use-after-free
- signed integer overflow
- 未初始化变量读取
- 非法类型访问
- data race
例子
#include <bits/stdc++.h>
using namespace std;
int main() {
int* p = nullptr;
*p = 10;
return 0;
}
动手
下面的编辑器就在浏览器里编译运行,不用装本地编译器。改一改数字、再点运行。