在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()
函数释放动态分配的内存空间。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: c语言十进制怎么转十六进制