-3
如何分配malloc以及結構陣列和結構陣列?在結構陣列中分配結構陣列
爲expample:
struct car_t{
int price;
float kmsDriven;
};
struct garage_t{
int locationX;
int locationY;
struct car_t * car;
}
有車庫的陣列,它們中的每個人都有汽車的數組。
如何分配malloc以及結構陣列和結構陣列?在結構陣列中分配結構陣列
爲expample:
struct car_t{
int price;
float kmsDriven;
};
struct garage_t{
int locationX;
int locationY;
struct car_t * car;
}
有車庫的陣列,它們中的每個人都有汽車的數組。
你將不得不使用一個循環:
#define N 42
#define M 17
struct garage_t *a = malloc(sizeof *a * N);
for (int i = 0; i < N; i++) {
a[i].car = malloc(sizeof (*a[i].car) * M);
}
只是像往常一樣分配,一個接一個。
int garage_num = 3, car_num = 5;
int i;
struct garage_t *garage;
garage = malloc(sizeof(struct garage_t) * garage_num);
for (i = 0; i < garage_num; i++) {
garage[i].car = malloc(sizeof(struct car_t) * car_num);
}
您應該檢查malloc()
s是否成功實際使用。
'了''是結構garage_t *'和'A [1]''是結構garage_t'。所以,使用'a [i] .car'而不是'a [i] - > car'。 – MikeCAT
@MikeCAT謝謝,修正 – ouah