Обработка pic
неработоспособна и очень запутанна.
Похоже, вы хотите представить ее как массив целых чисел, но не сохраняете длину.Таким образом, должно быть всегда три, но тогда вы можете просто использовать массив в структуре, то есть:
int pic[3];
вместо
int *pic;
Также присваивание внутри initCar()
делаетнет смысла, вы зацикливаетесь, а просто присваиваете одно и то же целочисленное значение (!) указателю imagecount
раз, данные не копируются.
Если вы хотите, чтобы длина массива изображения действительно была переменной, вы должны хранить длину и выделить память для хранения чисел.Таким образом, в initCar()
вы должны иметь:
newCar.pic = malloc(imagecount * sizeof *newCar.pic);
memcpy(newCar.pic, itsPic, imagecount * sizeof *newCar.pic);
, но тогда itsPic
должен, конечно, иметь тип const int *
.