@marlaaa

Не компилируется код. Как исправить ошибку?

При компиляции вылазит окно представленное на картинке. Что поправить. Код ниже.
62094ae7aca9a295903628.png
#include <iostream>
using namespace std;
enum stran {
    Belarus, Brasiliya, Iran
};
union no {
    int people : 2;
    int s: 1;
};
struct Gosvo
{
    no a;
    string sity;
    string name;
    stran b;

};

int main()
{
    
    Gosvo f;
    f.name = "Belarus";
    f.sity = "Minsk";
    f.a.people = 93;
    f.a.s = 2;
    Gosvo k;
    k.name = "Brasiliya";
    k.sity = "Brasilia";
    k.a.people=21;
    k.a.s=8;
    Gosvo l;
    l.name = "Iran";
    l.sity = "Tegeran";
    l.a.people = 7;
    l.a.s = 16;
    Gosvo gosvos[2];
    gosvos[0] = f;
    gosvos[1] = k;
    gosvos[2] = l;
    cout << gosvos[1].name;
    return 0;
}
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Во-первых, вы что-то путаете. Это не при компиляции происходит, а при запуске программы. Во-вторых, вы можете открыть окно "стек вызова" справа внизу, и посмотреть, какой код в вашей программе вызвал это исключение. Вы окажетесь на конкретной строчке, где вы обращаетесь к несуществующей памяти. Это скорее всего будет обращение к массиву у вас. После этого вам остается лишь немного подумать - а почему же идет обращение к не существуюущей памяти в этой строчке? Проверьте размер массива, чему равен индекс.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mixatronik
@mixatronik
mixatronik.ru
В массиве выделена память под два элемента, а присваиваешь трём.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы