如何定义一个未知长度的结构体数组

在设计用户注册系统时,并不知道用户个数,所以想定义一个未知长度的结构体数组

当知道长度后动态分配空间,或者定义一个足够大的数组

如果是C语言可以使用动态内存分配来定义一个未知长度的结构体数组。方法如下:
1、定义结构体类型。
2、使用 malloc 函数为结构体数组分配内存空间,可以使用 sizeof 运算符获取结构体大小,并根据需要分配数组长度。
3、访问结构体数组元素时,使用指针或下标运算符。
在我的代码库中给你找一个例子,希望对你有帮助

#include <stdlib.h>
#include <stdio.h>
typedef struct {
    int id;
    char name[20];
} Student;

int main() {
    int n;  // 数组长度
    printf("请输入学生人数:");
    scanf("%d", &n);
    // 动态分配数组空间
    Student* students = (Student*)malloc(n * sizeof(Student));
    // 初始化数组元素
    for (int i = 0; i < n; i++) {
        students[i].id = i + 1;
        sprintf(students[i].name, "Student%d", i + 1);
    }

    // 输出数组元素
    for (int i = 0; i < n; i++) {
        printf("学生%d:ID=%d,姓名=%s\n", i + 1, students[i].id, students[i].name);
    }
    // 释放数组空间
    free(students);
    return 0;
}

1 可以定义一个大大的数组
2 用new分配一个