我有一个棘手的问题,请尝试在一个简短的示例中进行解释。
我想要这样的结构:
struct car_park{
int count_of_cars;
struct car{
int count_of_seats;
struct seat{
int size;
int color;
}seats[];
}cars[];
}
在停车场中,汽车数量众多,每辆汽车具有不同的座位数,并且每个座椅具有不同的参数。汽车的最大数量为100,座椅的最大数量为6,但是我不想使用静态的汽车和座椅阵列。我想动态分配内存。
而且:我想在多种功能中使用它。
void read_current_cars(struct car_park *mycars){
// read config file and allocate memory for the struct
...
}
void function_x(struct car_park *mycars){
//... use struct
}
void main(){
struct car_park my;
read_current_cars(&my);
function_x(&my);
}
如何编程?我在网上搜索,但找不到解决方案。我只找到了零件,但我对此不解。
安德烈
答案 0 :(得分:1)
虽然允许最后一个成员具有长度不指定长度的数组的结构,但不允许将这样的结构作为数组的成员。
由于您正在为这些数组动态分配空间,因此将cars
和seats
成员声明为指针:
struct seat {
int size;
int color;
};
struct car {
int count_of_seats;
struct seat *seats;
};
struct car_park {
int count_of_cars;
struct car *cars;
};