怎么实现C语言不定长结构体数组,可以给个例子吗?
时间: 2024-05-12 18:16:54 浏览: 5
您好,对于C语言不定长结构体数组,可以使用动态内存分配的方式来实现。具体操作可以使用malloc函数按当前需要分配内存大小,再使用realloc函数来改变之前分配的内存大小。
这里提供一个简单的示例,供您参考:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
int id;
char name[20];
} Student;
int main() {
int n; // 声明数组长度
printf("请输入数组长度:");
scanf("%d", &n);
// 动态分配内存
Student *students = (Student*)malloc(sizeof(Student) * n);
for (int i = 0; i < n; i++) {
// 给每个结构体变量赋值
students[i].id = i + 1;
strcpy(students[i].name, "Tom");
}
// 遍历输出
for (int i = 0; i < n; i++) {
printf("id: %d, name: %s\n", students[i].id, students[i].name);
}
// 释放动态分配的内存
free(students);
return 0;
}
```
以上是一个简单的例子,当然实际开发中还要考虑错误处理等细节问题。