c语言动态创建结构体的方法是什么

avatar
作者
筋斗云
阅读量:0

在C语言中,可以使用动态内存分配函数malloc()来动态创建结构体。以下是一个示例代码:

#include <stdio.h> #include <stdlib.h>  typedef struct {     int id;     char name[20]; } Person;  int main() {     int n;     printf("请输入结构体的个数:");     scanf("%d", &n);          Person* people = (Person*)malloc(n * sizeof(Person));     if (people == NULL) {         printf("内存分配失败\n");         return 0;     }          for (int i = 0; i < n; i++) {         printf("请输入第%d个结构体的id和name:", i+1);         scanf("%d %s", &(people[i].id), people[i].name);     }          printf("输入的结构体信息为:\n");     for (int i = 0; i < n; i++) {         printf("id: %d, name: %s\n", people[i].id, people[i].name);     }          free(people);     return 0; } 

上述代码首先通过malloc()函数动态分配了n个Person大小的内存空间,并将返回的指针赋值给people指针。然后遍历people数组,依次输入每个结构体的成员变量值。最后输出输入的结构体信息,并通过free()函数释放动态分配的内存空间。

广告一刻

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