c笔记——指针错误情况

指针错误情况:

1、空指针

指向不可访问的地址:

    {

         int *p;

         *p = 1;

    }

 

2、野指针

指向未分配空间的地址:

    {

         int *p;

         p = NULL;

         *p = 1;

    }

指向未知的特定地址

    {

         char *p = 0x00123456;

         *p = 1;

    }

 

3、悬空指针

使用了已经free掉的地址:

    {

         int *p1 = (int *)malloc(sizeof(int));

         *p1 = 1;

         printf("p1 = %d\n", *p1);

         free(p1);

         int *p2 = (int *)malloc(sizeof(int));

         *p2 = 2;

         printf("p2 = %d\n", *p2);

         *p1 = 1;

         printf("p2 = %d", *p2);

    }                                               //输出为1 2 1

预防方法:在free掉指针后在后面加p=NULL指向空

posted on 2021-01-30 22:48  平ping  阅读(228)  评论(0)    收藏  举报