一:野指针是怎么产生的?
1、野指针 未初始化
#include<stdio.h>
// int main()
// {
// // int a; // 局部变量不初始化,默认是随机值
// int *p; // 局部的指针变量 就被初始化随机
// *p = 20;
// return 0;
// }
2、野指针 越界访问
int main()
{
int arr[10] = {0};
int *p = arr;
int i = 0;
for(i = 0; i < 12; i++)
{
// 当指针指向的范围超出数组arr的范围时,p就是野指针
*(p++)=i;
}
//
return 0;
}
3、指针 指向的空间 被释放了
二:怎么预防
如何规避野指针
1、初始化
2、指针越界
3、指针指向空间释放既放置NULL
4、指针使用检查有效性