毕业设计网站做几个,大连做网站的科技公司,wordpress文学站,陕西网络推广网站一.野指针 野指针指的是指针指向的地址是未知的#xff08;随机的#xff0c;不正确的地址#xff09;。
二.野指针出现的几种情况
1.定义指针未初始化
#include stdio.hint main(void)
{int *p;*p 1;printf(*p is %d\n,*p);
}
正确写法#xff1…一.野指针 野指针指的是指针指向的地址是未知的随机的不正确的地址。
二.野指针出现的几种情况
1.定义指针未初始化
#include stdio.hint main(void)
{int *p;*p 1;printf(*p is %d\n,*p);
}
正确写法
#include stdio.hint main(void)
{int a;int *p a ;*p 1;printf(*p is %d\n,*p);
}
2.指针越界
#include stdio.hint main(void)
{int a[3] {1,2,3};int i;for(i 0;i 5;i){printf(*p is %d\n,*(ai));}} 正确写法
#include stdio.hint main(void)
{int a[3] {1,2,3};int i;for(i 0;i 3;i){printf(*p is %d\n,*(ai));}}
三.悬空指针
悬空指针指的是指针指向的地址已经被释放或者不在有效但是指针本身仍然保留着这个地址当程序尝试访问悬空指针指向的地址时可能会导致未定义的行为。
四.悬空指针出现的几种情况 1.指针指向的地址已经被释放或者不在有效
#include stdio.hint* test(void)
{int a1;return a;
}int main(void)
{int *p NULL;p test();printf(a is %d\n,*p);
}正确写法
#include stdio.h
int a1;int* test(void)
{return a;
}int main(void)
{int *p NULL;p test();printf(a is %d\n,*p);}
五.如何避免
野指针和悬空指针造成的问题往往很隐蔽所以在使用指针的时候要避免野指针和悬空指针。 1.如果不知道要给指针变量赋值的地址是多少就初始化为NULL。 2.避免指针越界。 3.指针指向的内存被释放以后要设置为NULL。在使用之前可以先判断指针是不是NULL。
六.视频教程
56.野指针和悬空指针_哔哩哔哩_bilibili