在结构数组中分配结构数组
Allocating an array of structures within an array of structures
如何使用 malloc 和结构数组以及结构数组进行分配?
例如:
struct car_t{
int price;
float kmsDriven;
};
struct garage_t{
int locationX;
int locationY;
struct car_t * car;
}
有一排车库,每个车库都有一排汽车。
像往常一样分配,一个一个分配。
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()
是否成功用于实际使用。
你将不得不使用一个循环:
#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);
}
如何使用 malloc 和结构数组以及结构数组进行分配?
例如:
struct car_t{
int price;
float kmsDriven;
};
struct garage_t{
int locationX;
int locationY;
struct car_t * car;
}
有一排车库,每个车库都有一排汽车。
像往常一样分配,一个一个分配。
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()
是否成功用于实际使用。
你将不得不使用一个循环:
#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);
}