c语言指针类问题

来源:互联网 发布:java如何取绝对值 编辑:程序博客网 时间:2024/06/06 11:12

判断指针是否野指针

        struct s
        {

                int a;

                char b;

        };

void test()

{

       struct s SS;

       struct s *p;

     p->a = 11; //error

    p=&SS;

    p->a = 22; //right

    p=(struct s*)maloc(sizeof(struct s));

     p->a = 33; //right

}


typedef struct S
{
    int a;
    struct S *next;
}S,*SS;

void test()
{
    // 指针需要分配内存
    SS AA;
    AA->a = 5;

    SS BB;
    BB->a = 88;
    
    AA->next = BB;
    printf("%d",);   //error
}


void test()
{
    //不是指针,不需要分配内存
    S AA;
    AA.a = 5;

    printf("%d\n",AA.a);
    
    S BB;
    BB.a = 88;
    
    AA.next = &BB;

    printf("%d \n",AA.next->a);  //right
}


void test1(char **p)
{
    char *p_in = (char*)malloc(sizeof(char)*3);
    strcpy(p_in,"31");
    
    p = &p_in;
    //*p = p_in;

    printf("in *p=%s\n",*p);
}


指针的指针问题

两边类型需要一致;

void test()
{

    char *p = (char*)malloc(sizeof(char)*3);
    char **p1;
    
    p1 = &p;
    //*p1 = p;

    test1(p1);

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

}

int main()
{
    test();
    return 0;
}




0 0
原创粉丝点击