none
Ошибка на этапе компиляции RRS feed

  • Вопрос

  • Суть вопроса такова: я создаю структуру, и объявляю указатель на переменную этого типа. Далее я вывожу структуру, выводим в файл. Вывод производим с помощью операции смещения от указателя, то есть указатель плюс индекс и разыменовываем и выводим.  Редактор кода не замечает ошибки, но далее при сборке возникает ошибка, не определена локальная переменная.

    Вот отрывки из кода:

    MARSH *way;                      //Инициализация указателя way
    system("cls");
    SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    cout << "Введите название начального пункта маршрута (Например: Vitebsk)";
    SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_INTENSITY);
    while (index < size)
    {
    cin >> *(way + index);
    ofstream outfile("MARSHrut_List.txt", ios::app);
    outfile << (*(way + index)) << endl;                 //Здесь происходит ошибка
    index++;
    }

    выдает ошибку:

    error C4700: использована неинициализированная локальная переменная "way"

    Хотя в другом отрывке кода при таком же способе доступа к переменной этой же структуры такой ошибки не происходит:

    for (int i = 0; i < size; i++)
    {
    if (strcmp((*(way + i)).start_point, point) == 0)
    {
    indicator = true;
    cout << "начальная точка: " << (*(way + i)).start_point
    << "\tконечная точка: " << (*(way + i)).finish_point
    << "\tномер маршрута: " << (*(way + i)).marsh_number << "\n";                     //Поиск в структуре 
    }
    else
    if (strcmp((*(way + i)).finish_point, point) == 0)
    {
    indicator = true;
    cout << "начальная точка: " << (*(way + i)).start_point
    << "\tконечная точка: " << (*(way + i)).finish_point
    << "\tномер маршрута: " << (*(way + i)).marsh_number << "\n";
    }
    }

    В чем моя ошибка и где?

    28 февраля 2018 г. 20:00

Ответы

Все ответы

  • Язык C++



    • Помечено в качестве ответа Alexandr_Tihon 28 февраля 2018 г. 20:03
    • Снята пометка об ответе Alexandr_Tihon 28 февраля 2018 г. 20:04
    • Помечено в качестве ответа Alexandr_Tihon 28 февраля 2018 г. 20:04
    • Изменено Alexandr_Tihon 28 февраля 2018 г. 20:04
    28 февраля 2018 г. 20:03
  • MARSH *way;                      //Инициализация указателя way

    Комментарий не соответствует коду. Если не ясно в чем загвоздка, то это не инициализация, а лишь объявление указателя. 



    This posting is provided "AS IS" with no warranties, and confers no rights.

    1 марта 2018 г. 4:06
    Модератор