野指针:指针指向的位置是      不可知的 ,    随机的,   不正确的,     没有明确限制的。
 
 
野指针形成原因:
          1,指针未初始化(例 int* p;)
          2,指针越界访问 (当指针指向的范围超出arr的范围时,p就是野指针)
               arr[10]={0};
               int* p=arr;
               for(i=0;i<15;i++)
                {*(p++)=i;}
          3.指针指向的空间释放
              释放并不是把该空间里所存放的数据全部清空置零,而是把该空间还给操作系统了,也就是说该空间已经不是你所拥有的了。
 
如何避免野指针?
            1,指针初始化;
             2,小心指针越界;
             3,使用完指针后(释放空间后)及时将指针置零(赋值NULL)
             4,指针使用之前检查其有效性;
 
ps:
空指针
    如果给指针初始化时候把NULL赋值给指针,那么这个指针就会变成空指针,
    注意!!!!此时如果想打印出空指针,结果为0x00000000,但是!!!!!这里的空指针表示的是不指向任何有效空间,而不是表示指向0x00000000,所以此时对空指针解引用操作时系统  会报错,此时访问空间就无意义了!!!
posted on 2023-06-03 11:26  蔡依林别吸我  阅读(90)  评论(0编辑  收藏  举报