阅读量: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()
函数释放动态分配的内存空间。