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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Luxmunx
 Аватар для Luxmunx
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 86
29.08.2013, 15:47     Использована неинициализированная локальная переменная #1
Здравствуйте. Подскажите, пожалуйста, в чем тут ошибка? Вроде бы все правильно.
Создаются переменная и указатель на адрес, где хранится значение типа int.
По этому адресу помещаю 5, а затем в t присваиваю значение, лежащее в *m.
Вывожу на экран.
Что я не так сделал?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <stdio.h>
 
    int _tmain(int argc, _TCHAR* argv[])
        {
            int t;
            int *m;
            
            *m = 5;
            t = *m;
 
            printf("%d",t);
            return 0;
        }
Миниатюры
Использована неинициализированная локальная переменная  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2013, 15:47     Использована неинициализированная локальная переменная
Посмотрите здесь:

C++ warning C4700: использована неинициализированная локальная переменная
C++ Использована неинициализированная локальная переменная
error C4700: использована неинициализированная локальная переменная C++
C++ использована неинициализированная локальная переменная
Функция PTinqpoint() и ошибка "Использована неинициализированная локальная переменная" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 982
Регистрация: 02.05.2013
Сообщений: 10,298
Завершенные тесты: 1
29.08.2013, 15:52     Использована неинициализированная локальная переменная #2
int *m;
m указывает в пустоту.
Luxmunx
 Аватар для Luxmunx
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 86
29.08.2013, 16:00  [ТС]     Использована неинициализированная локальная переменная #3
Цитата Сообщение от Убежденный Посмотреть сообщение
m указывает в пустоту.
ммм... то есть.. как надо изменить?
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 982
Регистрация: 02.05.2013
Сообщений: 10,298
Завершенные тесты: 1
29.08.2013, 16:05     Использована неинициализированная локальная переменная #4
Например, так:
C++
1
2
3
4
5
6
// Выделили память и присвоили указателю ее адрес.
int *m = new int();
 
// Побаловались с памятью...
 
delete m; // Вернули системе назад.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.08.2013, 16:09     Использована неинициализированная локальная переменная #5
Или присвоить указателю адрес уже существующей переменной int.

Добавлено через 3 минуты
C++
1
2
3
4
5
6
int t;
int *m = &t;
            
*m = 5;
            
printf("%d",t);
Luxmunx
 Аватар для Luxmunx
2 / 2 / 0
Регистрация: 05.11.2012
Сообщений: 86
29.08.2013, 16:12  [ТС]     Использована неинициализированная локальная переменная #6
Спасибо)
Yandex
Объявления
29.08.2013, 16:12     Использована неинициализированная локальная переменная
Ответ Создать тему
Опции темы

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