结构体数组的动态分配
时间: 2023-12-18 14:29:42 浏览: 125
动态分配结构体数组的步骤如下:
1. 定义结构体类型。
2. 使用malloc函数动态分配内存。
3. 对结构体数组进行初始化。
4. 使用结构体数组。
5. 释放动分配的内存。
下面是一个示例代码,演示了如何动态分配结构体数组:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体类型
struct CarInfo {
char brand[20];
char model[20];
int year;
};
int main() {
int n;
printf("请输入要分配的结构体数组大小:");
scanf("%d", &n);
// 动态分配内存
struct CarInfo *pcarinfo = (struct CarInfo*)malloc(n * sizeof(struct CarInfo));
// 对结构体数组进行初始化
for (int i = 0; i < n; i++) {
printf("请输入第%d辆车的品牌、型号和年份:", i + 1);
scanf("%s %s %d", (pcarinfo + i)->brand, (pcarinfo + i)->model, &(pcarinfo + i)->year);
}
// 使用结构体数组
printf("您输入的车辆信息如下:\n");
for (int i = 0; i < n; i++) {
printf("第%d辆车:品牌:%s,型号:%s,年份:%d\n", i + 1, (pcarinfo + i)->brand, (pcarinfo + i)->model, (pcarinfo + i)->year);
}
// 释放动态分配的内存
free(pcarinfo);
return 0;
}
```
阅读全文