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

avatar
作者
筋斗云
阅读量:0

在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); 

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!