在C語言中,使用malloc函數(shù)可以動態(tài)分配內(nèi)存空間。要用malloc函數(shù)分配結(jié)構(gòu)體數(shù)組,可以按照以下步驟進(jìn)行:
typedef struct {
char name[20];
int age;
} Person;
Person* p;
int n;
scanf("%d", &n); // 輸入數(shù)組長度
p = (Person*)malloc(n * sizeof(Person));
這里使用了n * sizeof(Person)作為malloc函數(shù)的參數(shù),表示要分配的內(nèi)存空間大小為n個Person結(jié)構(gòu)體的大小。
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函數(shù)在C語言中動態(tài)分配結(jié)構(gòu)體數(shù)組了。