二级指针输出的特性【实例】


这是一个关于“二级指针输出的特性”的实例,这是基础,多看多练有助于提升理解!


实例:

#
#
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct Person{
    char name[64];
    int age;
};

void allocate_memory(struct Person ** person)
{
    struct Person * temp = (struct Person*)malloc(sizeof(struct Person));
    strcpy(temp->name,"leo");
    temp->age = 18;

    //指针间接赋值
    *person = temp;
}

void free_memory(struct Person ** person)
{
    if(person == NULL)
    {
        return;
    }
    if(*person != NULL)
    {
        free(*person);
    }
    *person = NULL;
}

void test()
{
    struct Person* person = NULL;
    //分配内存
    allocate_memory(&person);
    if(person == NULL)
    {
        printf("分配空间失败!");
    }

    printf("name: %s  age: %d \n",person->name, person->age);

    //释放内存
    free_memory(&person);
    if(person == NULL)
    {
        printf("person指针是NULL!\n");
    }

}



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


上一篇 下一篇