野指针:
概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)
野指针的成因:
1指针未初始化:
#include<stdio.h>
int main()
{
int* p;//没有初始化-里边放的是随机值
*p = 20;//通过p中存的随机值作为地址,找到一个空间,这个空间不属于我们当前的程序
//就造成了非法访问,p就是野指针
return 0;
}
2.越界访问:
#include<stdio.h>
int main()
{
//指针越界造成野指针的问题
int arr[10] = 0;
int i = 0;
int* p = arr;
for (i = 0; i <= 10; i++)
{
*p = i;
p++;
}
return 0;
}
这里i循环了11次,导致不存在第11个空间也被访问,造成指针越界访问。
3.指针非法访问:
#include<stdio.h>
int* test()
{
int a = 10;
return &a;//int*
}
int mai