温馨提示×

C语言中怎么用malloc分配结构体数组

小亿
459
2023-08-06 06:35:52
栏目: 编程语言

在C语言中,使用malloc函数可以动态分配内存空间。要用malloc函数分配结构体数组,可以按照以下步骤进行:

  1. 定义结构体类型。例如,假设定义了一个结构体类型为Person:
typedef struct {
char name[20];
int age;
} Person;
  1. 声明一个指向结构体类型的指针。例如,声明一个指向Person类型的指针p:
Person* p;
  1. 使用malloc函数为结构体数组分配内存空间。例如,为一个包含n个Person结构体的数组分配内存空间:
int n;
scanf("%d", &n); // 输入数组长度
p = (Person*)malloc(n * sizeof(Person));

这里使用了n * sizeof(Person)作为malloc函数的参数,表示要分配的内存空间大小为n个Person结构体的大小。

  1. 使用分配的内存空间。分配内存后,就可以使用指针p来访问和操作结构体数组中的元素了。例如,给数组中的元素赋值:
int i;
for (i = 0; i < n; i++) {
printf("Enter name: ");
scanf("%s", p[i].name);
printf("Enter age: ");
scanf("%d", &(p[i].age));
}
  1. 最后,记得在程序结束时使用free函数释放动态分配的内存空间:
free(p);

这样,就可以使用malloc函数在C语言中动态分配结构体数组了。

0