在设计用户注册系统时,并不知道用户个数,所以想定义一个未知长度的结构体数组
当知道长度后动态分配空间,或者定义一个足够大的数组
如果是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分配一个