在C语言中,使用malloc函数可以动态分配内存空间。要用malloc函数分配结构体数组,可以按照以下步骤进行:
typedef struct {
char name[20];
int age;
} Person;
Person* p;
int n;
scanf("%d", &n); // 输入数组长度
p = (Person*)malloc(n * sizeof(Person));
这里使用了n * sizeof(Person)作为malloc函数的参数,表示要分配的内存空间大小为n个Person结构体的大小。
int i;
for (i = 0; i < n; i++) {
printf("Enter name: ");
scanf("%s", p[i].name);
printf("Enter age: ");
scanf("%d", &(p[i].age));
}
free(p);
这样,就可以使用malloc函数在C语言中动态分配结构体数组了。