温馨提示×

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

小亿
98
2023-11-23 18:03:06
栏目: 编程语言

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

0