2024年6月2日发(作者:)

C语言给结构体指针赋值

C语言中结构体指针赋值是通过直接赋值或者使用间接访问运算符来

实现的,下面将详细介绍两种方法。

方法一:直接赋值

在C语言中,可以通过直接赋值来为结构体指针赋值。下面是一个例

子:

```c

#include

#include

//定义一个结构体

typedef struct

int id;

char name[20];

int age;

} Person;

int mai

//创建结构体指针

Person* p = (Person*)malloc(sizeof(Person));

//直接赋值

p->id = 001;

strcpy(p->name, "John");

p->age = 20;

//输出结构体指针的值

printf("Person ID: %dn", p->id);

printf("Person Name: %sn", p->name);

printf("Person Age: %dn", p->age);

//释放内存

free(p);

return 0;

```

在上面的例子中,首先通过malloc函数动态分配了一个Person结构

体的内存空间,然后可以通过直接赋值的方式为结构体指针p的成员赋值,

最后通过访问成员的方式输出结构体指针的值。注意,在结束程序之前要

使用free函数释放动态分配的内存空间。

方法二:间接访问运算符

C语言中,还可以使用间接访问运算符来为结构体指针赋值。下面是

一个例子:

```c

#include

#include

//定义一个结构体

typedef struct

int id;

char name[20];

int age;

} Person;

int mai

//创建结构体指针

Person* p = (Person*)malloc(sizeof(Person));

//间接访问运算符

(*p).id = 001;

strcpy((*p).name, "John");

(*p).age = 20;

//输出结构体指针的值

printf("Person ID: %dn", (*p).id);

printf("Person Name: %sn", (*p).name);

printf("Person Age: %dn", (*p).age);

//释放内存

free(p);

return 0;

```

在上面的例子中,首先通过malloc函数动态分配了一个Person结构

体的内存空间,然后可以通过间接访问运算符(*p)来访问结构体指针p的

成员,并赋予新的值。最后通过访问成员的方式输出结构体指针的值。同

样的,在结束程序之前要使用free函数释放动态分配的内存空间。

以上是C语言中给结构体指针赋值的两种常见方法,使用直接赋值或

者间接访问运算符都可以实现结构体指针的赋值操作,具体使用哪种方法

取决于个人喜好和代码风格。无论使用哪种方法,都需要确保在结束程序

之前释放动态分配的内存空间,以避免内存泄漏。