Форум программистов, компьютерный форум CyberForum.ru

потенциально не инициализированная переменная - C++

Восстановить пароль Регистрация
 
evelolka
 Аватар для evelolka
2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
11.03.2014, 15:12     потенциально не инициализированная переменная #1
вс2012 вот так ругается на current где пометил
почему не понимаю


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include<Windows.h>
#include <clocale>
#include <conio.h>
#include<iostream>
using namespace std;
int main()
{
   SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
   SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
 
    /*Описать структуру с именем WORKER, с полями: фамилия, имя, должность, год поступления на работу.
Сформировать односвязный список. Затем напечатать элементы списка по возрастанию, используя в качестве первичного ключа
 – поле «год».
Затем напечатать фамилии тех работников, чей стаж меньше среднего стажа всех сотрудников предприятия.*/
 
    struct WORKER
    {
        char family[20], name[20], dolzhnost[20];
        int god;
        WORKER * next;
    };
    WORKER*head = 0;
    WORKER*current;
    char c;
    cout<<"ввести данные ? (да/нет)\n";
    c=_getche();
    while(c == 'да')
    {
        if(head)//добавляем не 1 элемент
        {
            current->next=new WORKER; //тут пишет что используется потенциально не инициализированная локальная переменная current
            current=current->next; 
 
        }
        else//добавляем 1 элемент
        {
            head=new WORKER;
            current=head;
        }
        cout<<"Введите имя\n";
        cin>>current->name;
        cout<<"Введите фамилию\n";
        cin>>current->family;
        cout<<"Введите должность\n";
        cin>>current->dolzhnost;
        cout<<"Введите год поступления на работу\n";
        cin>>current->god;
        cout<<"Ввести данные?(да/нет)";
        c=_getche();
    }
    if(head)
    {
        current=head;
        while( current!=0 )
        {
            cout<<"\nимя- "<<current->name<<"\n"<<"фамилия- "<<current->family<<"\n"<<"Должность- "<<current->dolzhnost<<"\n"<<"Год поступления- "<<current->god<<"\n";
        current=current->next;
        }
 
    }
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2014, 15:12     потенциально не инициализированная переменная
Посмотрите здесь:

C++ переменная
C++ Переменная
C++ Булевская переменная
C++ Переменная и CMD
C++ Используется потенциально неинициализированная локальная переменная-указатель
C++ Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз
C++ Error C4703: используется потенциально неинициализированная локальная переменная-указатель
Исправить ошибку: "C4703: используется потенциально неинициализированная локальная переменная-указатель" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
11.03.2014, 15:16     потенциально не инициализированная переменная #2
Ну и где инициализация?
Понятно, что в указателе сейчас мусор.
Extrim88
 Аватар для Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
11.03.2014, 15:19     потенциально не инициализированная переменная #3
Цитата Сообщение от evelolka Посмотреть сообщение
current->next=new WORKER; //тут пишет что используется потенциально не инициализированная локальная переменная current
Ну так и понятно, вы объявляете указатель на структуру в строке 23, ничем его не инициализируте, в итоге он указывает неизвестно на какие ячейки памяти, а потом в цикле пытаетесь обратиться через этот указатель к полям структуры некой, как реально существующего объекта данных.
Yandex
Объявления
11.03.2014, 15:19     потенциально не инициализированная переменная
Ответ Создать тему
Опции темы

Текущее время: 08:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru