Я пытаюсь создать массив структур с динамическим размером и попытаться присвоить значения каждой из этих структур. Я знаю, что я мог бы использовать вектор, чтобы легко решить эту проблему, но я делаю это как упражнение, чтобы изучить основы C++ и как он действительно работает в своем ядре.Как назначить значение фиксированному массиву указателей на структуры
структура в этом случае
struct car
{
std::string make;
int year;
};
Затем в основной функции(), у меня есть:
car* cars[catSize];
for (int i = 0; i < catSize; ++i)
{
cars[i] = new car
cout << "Enter the make for car " << i << ": ";
char ch;
string tempMake = "";
cin.get(ch);
while(ch != '\n')
{
tempMake += ch;
cin.get(ch);
}
cars[i]->make = tempMake;
cout << "Enter the year of car # " << i << ": ";
cin >> cars[i]->year;
}
Запуск выше дает мне ошибку сегментации сразу после ввода грим и нажав войти. Может кто-нибудь помочь объяснить, что происходит?
Что такое 'catSize'? – HAL
Есть ли что-то не так с использованием объектов, а не 'new'? – chris
catSize - введенное пользователем целое число - поэтому в этом случае я ставлю значение 3. – mjsalinger