在C語言中,可以使用動態內存分配函數malloc()
來動態創建結構體。以下是一個示例代碼:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
char name[20];
} Person;
int main() {
int n;
printf("請輸入結構體的個數:");
scanf("%d", &n);
Person* people = (Person*)malloc(n * sizeof(Person));
if (people == NULL) {
printf("內存分配失敗\n");
return 0;
}
for (int i = 0; i < n; i++) {
printf("請輸入第%d個結構體的id和name:", i+1);
scanf("%d %s", &(people[i].id), people[i].name);
}
printf("輸入的結構體信息為:\n");
for (int i = 0; i < n; i++) {
printf("id: %d, name: %s\n", people[i].id, people[i].name);
}
free(people);
return 0;
}
上述代碼首先通過malloc()
函數動態分配了n個Person大小的內存空間,并將返回的指針賦值給people指針。然后遍歷people數組,依次輸入每個結構體的成員變量值。最后輸出輸入的結構體信息,并通過free()
函數釋放動態分配的內存空間。