Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
1 / 1 / 0
Регистрация: 06.09.2014
Сообщений: 105
1

Error C4703: используется потенциально неинициализированная локальная переменная-указатель

21.04.2015, 23:45. Показов 3825. Ответов 1
Метки нет (Все метки)

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// prog8.cpp: определяет точку входа для консольного приложения.
#include <stdio.h>
#include <iostream>
#include <string>
 
using namespace std;
class stack
{
public:
    
    stack(string = "", int = 0); //Конструктор
    string num;//Номер машины
    int kol;//Кол-во раз которое машина удалялась со стоянки
    stack *p;
 
};
 
stack *first(string, int);
void push(stack **top, string, int);
stack pop(stack **top);
void menu();
 
int main()
 
{
    setlocale(LC_ALL, "Russian");
    stack mashin;
    int i = 0, n = 0, k;
    // Проверка на кол-во авто (n>1)
    while (n <= 0)
    {
        cout << "Введите кол-во автомобилей на стоянке: ";
        cin >> n;
    }
    cout << "Номер 1-го автомобиля:";
    cin >> mashin.num;
    mashin.kol = 0;
    stack *top = first(mashin.num, mashin.kol); //Начальное формирование стека
    for (i = 1; i<n; i++)
    {
    cout << "Номер " << i + 1 << "-го автомобиля:";
    cin >> mashin.num;
    mashin.kol = 0;
    push(&top, mashin.num, mashin.kol);
    }
 
step_menu:
 
    cout << "-------------------------------------" << endl;
    menu();
    cin >> k;
    cout << "-------------------------------------" << endl;
    switch (k)
    {
    case 0: 
    {
        while (top)
    {
        stack temp = pop(&top);
        cout << temp.num << "\t" << temp.kol << endl;
    }
            goto step_menu;
    }
 
    case 1:
    {
        cout << "Введите номер добавляемого автомобиля:";
        cin >> mashin.num;
        mashin.kol = 0;
        push(&top, mashin.num, mashin.kol); goto step_menu;
    }
    case 2:
    {
        cout << "Введите номер удаляемого автомобиля:";
        string numdel;
        cin >> numdel;
        bool q = true;
    step2:
        stack temp = pop(&top);
        if ((numdel.compare(temp.num) != 0) && (top == NULL))
        {
            cout << "Такого автомобиля нет в гараже. Удаление невозможно." << endl; goto step_menu;
        }
        if (numdel.compare(temp.num) == 0)
        {
            cout << "Автомобиль удален со стоянки." << endl;
            cout << "Автомобиль удалялся " << temp.kol << "-раз для обеспечения выезда других автомобилей." << endl;
            goto go_while;
        }
        else
        {
            /* Формирование 1-ого элемента вспомога-
            тельного стека(Выполняется один раз!) */
            
            if (q == false) { goto ex; }
            else q = false;
            stack *top2 = nullptr;
            top2 = first(temp.num, (temp.kol) + 1);
            goto step2;
        ex:
 
            /* Заносим элементы из гаража
            в вспомогательный стек */
 
            push(&top2, temp.num, temp.kol + 1);
            goto step2;
        go_while:
 
            /* Выгружаем элементы из вспо-
            могательного стека в гараж */
 
            while (top2)
            {
                stack temp = pop(&top2);
                push(&top, temp.num, temp.kol);
            }
            goto step_menu;
        }
    }
 
    case 3: exit(0);
    default:
 
        cout << "<<<Ошибка меню! Сделайте правильный выбор>>>" << endl;
        goto step_menu;
    }
    return 0;
}
Ошибка: error C4703: используется потенциально неинициализированная локальная переменная-указатель "top2" строка 112 1

Второй файл:
Кликните здесь для просмотра всего текста
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
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
 
class stack
{
 
public:
 
    stack(string = "", int = 0); //Конструктор
    string num;//Номер машины
    int kol;//Кол-во раз которое машина удалялась со стоянки
    stack *p;
 
};
 
stack::stack(string N, int K)
 
{
    num = N; kol = K;
}
 
// Начальное формирование стека
 
stack *first(string num, int kol)
 
{
 
    stack *pv = new stack;
    pv->num = num;
    pv->kol = kol;
    pv->p = 0;
    return pv;
 
}
 
// Занесение в стек
 
void push(stack **top, string num, int kol)
 
{
    stack *pv = new stack;
    pv->num = num;
    pv->kol = kol;
    pv->p = *top;
    *top = pv;
}
 
// Выборка из стека
 
stack pop(stack **top)
 
{
    stack *temp = new stack;
    stack *pv = *top;
    temp->num = pv->num;
    temp->kol = pv->kol;
    *top = (*top)->p;
    delete pv;
    return *temp;
}
 
 
// Меню
void menu()
{
 
    setlocale(LC_ALL, "Russian");
    cout << "0: Выгрузить стек на дисплей" << endl;
    cout << "1: Добавить машину в стек" << endl;
    cout << "2: Удалить машину из стека" << endl;
    cout << "3: Выход (Exit)" << endl;
    cout << "Сделайте выбор: ";
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2015, 23:45
Ответы с готовыми решениями:

Error C4703: используется потенциально неинициализированная локальная переменная-указатель "pel"
#include &quot;vector.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; int main() {...

Ошибка C4703 используется потенциально неинициализированная локальная переменная-указатель "A"
Помогите не могу понять, что не так то, уже многое перепробовал #include &quot;stdafx.h&quot; #include...

Выдает ошибку C4703: используется потенциально неинициализированная локальная переменная-указатель "a"
Выдает ошибку C4703: используется потенциально неинициализированная локальная переменная-указатель...

Исправить ошибку: "C4703: используется потенциально неинициализированная локальная переменная-указатель"
Вообщем выдает одну ошибку в функции добавления в 76 строке, а именно &quot;Ошибка 1 error C4703:...

1
846 / 777 / 258
Регистрация: 27.07.2012
Сообщений: 2,181
21.04.2015, 23:58 2
Ну так всё же написано: используется потенциально неинициализированная локальная переменная-указатель "top2". Т.е. top2 возможно будет не инициализирована в тот момент, когда выполнение дойдёт до строчки 112. И тогда, как говорится, всё может быть.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2015, 23:58

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Потенциально неинициализированная локальная переменная-указатель (Ошибка C4703) - Как исправить?
Здравствуйте, как можно исправить вот эти ошибки: Ошибка C4703 используется потенциально...

Используется потенциально неинициализированная локальная переменная-указатель
// ex4.cpp: определяет точку входа для консольного приложения. // ...

"Используется потенциально неинициализированная локальная переменная - указатель"
Доброго времени суток! Возникла проблема в программе, на 68 строке пишет, что &quot;используется...

Ошибка: Используется потенциально неинициализированная локальная переменная
Ошибка: Используется потенциально неинициализированная локальная переменная prev - 48 строчка,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.