У меня есть два простых структур, которые в моей основной я создаю с:Malloc в одной петле
struct Car *myCar[200]
struct Car *otherCar[200]
Когда я первый пытался инициализировать их, я попробовал:
for (int i = 0; i < 200; i++){
myCar[i] = malloc(sizeof(struct Car*));
otherCar[i] = malloc(sizeof(struct Car*))
}
который не работает , но если я разделить их на отдельные петли, например:
for (int i = 0; i < 200; i++){
myCar[i] = malloc(sizeof(struct Car*));
}
for (int x = 0; x < 200; x++){
otherCar[x] = malloc(sizeof(struct Car*))
}
это работает. Может ли кто-нибудь объяснить мне, почему это не работает/не работает в каждом примере?
Что не работает в виду? –
вам не хватает точки с запятой ... и зачем выделять, когда вы можете сделать 'struct Car myCar [200];'? и это должно работать так [изменить] ваш вопрос, чтобы объяснить, что пойдет не так. –
Определить «не работает»? Также вы выделяете неправильный объем памяти. В ваших массивах содержатся указатели на 'struct Car', но вы выделяете достаточно для указателя, который, вероятно, не является размером структуры. –