温馨提示×

c语言怎么动态创建结构体

小亿
184
2023-10-09 22:08:20
栏目: 编程语言

在C语言中,可以使用动态内存分配函数malloc()来动态创建结构体。

首先,需要定义一个结构体类型,如下所示:

typedef struct {
int id;
char name[20];
int age;
} Person;

然后,可以使用malloc()函数来动态分配内存,创建结构体对象,如下所示:

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

在上面的代码中,sizeof(Person)表示结构体Person的大小,malloc()函数会分配相应大小的内存,并返回一个指向该内存的指针。需要注意的是,由于malloc()函数返回的是void *类型的指针,需要将其强制转换为结构体类型的指针。

接下来,就可以通过指针访问结构体的成员变量,并进行赋值,如下所示:

person->id = 1;
strcpy(person->name, "John");
person->age = 20;

最后,使用完动态创建的结构体后,需要使用free()函数释放分配的内存,防止内存泄漏,如下所示:

free(person);

需要注意的是,使用完动态创建的结构体后,必须手动释放分配的内存,否则会导致内存泄漏。

0