Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,849
1

Используется потенциально неинициализированая локальная переменная

26.08.2020, 17:53. Показов 687. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,

Подскажите пожалуйста почему так происходит:

В первом случае все работает нормально:

1)
C++
1
2
3
4
5
6
int main()
{
    int it = 0;
    
    func(it);
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void func(int it)
{
    int my_int;;
 
 
    if (it == 0)
    {
        my_int = 1;
    }
 
    if (it == 1)
    {
        my_int = 2;
    }
 
    cout << my_int << endl;
}
А вот в этом случае уже ошибка "Используется потенциально неинициализированая локальная переменная", хотя вроде бы на первый взгляд ведь все тоже самое ?

2)
C++
1
2
3
4
5
6
int main()
{
    int it = 0;
    
    func(it);
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <Windows.h>
void func(int it)
{
    HWND MY_GetForegroundWindow;
 
    int mint = 345;
 
    if (it == 0)
    {
        MY_GetForegroundWindow = (HWND)mint;
    }
    if (it == 1)
    {
        MY_GetForegroundWindow = (HWND)mint;
    }
 
    cout << MY_GetForegroundWindow << endl;
}
Разве тут не все тоже самое ??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.08.2020, 17:53
Ответы с готовыми решениями:

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

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

Error C4703: используется потенциально неинициализированная локальная переменная-указатель
// prog8.cpp: определяет точку входа для консольного приложения. #include &lt;stdio.h&gt; #include...

Ошибка "используется потенциально неинициализированная локальная переменная-указатель"
#include&lt;iostream&gt; using namespace std; struct spis { int info; spis* prev, * next;...

23
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
26.08.2020, 20:06 21
Author24 — интернет-сервис помощи студентам
По второму

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <Windows.h>
void func(int it)
{
    HWND MY_GetForegroundWindow;
 
    int mint = 345;
 
    if (it == 0)
        MY_GetForegroundWindow = (HWND)mint;
    else if (it == 1)
        MY_GetForegroundWindow = (HWND)mint;
    else
    {
        cout << "can't create Window" << endl;  // MY_GetForegroundWindow не вызывается
        return;
    }
 
    cout << MY_GetForegroundWindow << endl;
}
Добавлено через 2 минуты
Цитата Сообщение от Optimus11 Посмотреть сообщение
Вы так шутите ?
А есть разница со случаем, когда у нас есть int it; ?
0
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,849
26.08.2020, 20:10  [ТС] 22
Цитата Сообщение от TRam_ Посмотреть сообщение
А есть разница со случаем, когда у нас есть int it; ?
Разница с чем ?
0
Вездепух
Эксперт CЭксперт С++
11694 / 6373 / 1723
Регистрация: 18.10.2014
Сообщений: 16,062
26.08.2020, 20:21 23
Цитата Сообщение от TRam_ Посмотреть сообщение
И вообще - при дальнейших модификациях программы вы можете забыть о том, что передавать функции можно только 0 или 1, или в неё передастся неправильный результат исполнения какой-то другой функции. Так что оставлять в том виде как у вас - нежелательно, о чём компилятор вас и предупреждает.
Сколько уж можно повторять по кругу, что это здесь всем и так понятно? Вопрос не имеет к этому никакого отношения.

Вопрос не в том, почему выдается предупреждение, а в том, почему две практически одинаковых версии кода диагностируются по-разному.

Цитата Сообщение от Optimus11 Посмотреть сообщение
А вот в этом случае уже ошибка "Используется потенциально неинициализированая локальная переменная", хотя вроде бы на первый взгляд ведь все тоже самое ?
... хотя как ТС получить такую ошибку и при каких настройках - не ясно. Ничего подобного у меня не воспроизводится.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
26.08.2020, 20:41 24
TRam_, почитайте еще раз внимательнее, о чем собственно, идет речь. И о чем вопрос. Я вот тоже сходу не врубился, а потом дошло-таки
0
26.08.2020, 20:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2020, 20:41
Помогаю со студенческими работами здесь

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

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

C4703 используется потенциально неинициализированная локальная переменная-указатель "end"
Здравствуйте, помогите пожалуйста разобраться с кодом (используется потенциально...

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

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

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() {...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru