Я работаю над небольшим проектом, в котором у меня есть структура автомобиля (год, марка и т. Д.) И структура коллекции, которая содержит автомобили. Как мне отобразить автомобили внутри коллекции?
в моем Car.h я определил:
struct CarP;
typedef struct CarP * Car;
typedef const struct CarP * constCar;
Car car_createCopy(constCar c); //returns a copied car from c
void display_car(constCar c);
в своем файле Collection.h, который я определил:
struct CollectionP;
typedef struct CollectionP * Collection;
typedef const struct CollectionP * constCol;
и в Collection.c:
struct CollectionP{
int nbCars;
Car * carList;
}
int getNbCars(constCol c){
return c -> nbCars;
}
void add_car(Collection c, constCar car){
int nbCar = getNbCars(c);
if(nbCar == 0)
c -> carList = malloc(sizeof(car));
else{
c -> carList = realloc(c -> carList,(nbCar+1)*sizeof(car));
c -> carList[nbCar] = car_createCopy(car);
}
c -> nbCars++;
}
void display_col(constCol c){
int nbCar = getNbCars(c);
for(int i = 0; i < nbCar; i++)
display_car(c -> carList[i]);
}
после добавления некоторых автомобилей в коллекцию, я пытаюсь вызвать функцию отображения, я получаю только одну машину с нулевым для марки и другими номерами в качестве значений для других полей, а затем программа останавливается с ошибкой сегментации.