Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2010, 05:17   #1
Xe[N]o
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 14
По умолчанию Run-Time Check Failure #3

Вот такая проблема, я делал в своей программе проверку на ошибку пользователя (не правельное число), при запуске приложения, все нормально, но в определеных условиях вылазит окно виндоувс с текстом:
Run-Time Check Failure #3 - The Vaiable 'R' is being used without being initialized

Вот какие условия:
Когда я ввел неверное значение R, то меня просят ввести его заного и продолжить дальше (аналогично с G и B), при этом конвертер выдает правельное значение, все работает. Как только такое происходит с G, то после ввода B, у меня вылазиет эта ошибка, и конвертер выдает неверное значение. Если же я тоже делаю с B, то программа жалуется на G и B. В чом может быть проблема?

Исходник:

Код:
#include <iostream>
#include <locale.h>

using namespace std;

int times = 0;
int Error = 0;
int R,G,B;

int main()
{
	int R,G,B;

	if(times == 0)
	{
	setlocale(LC_ALL, "Russian");
	system("TITLE Colors converter");
    system("Color f0");
	cout << "Конвертер цветов RGB от Xe[N]o";
	cout << "\nВведите цвет в формате RGB, чтобы получить html цвет\n\n";
	times = 1;
	}

	if(Error == 0)
	{
	cout << "\nR: ";
	cin >> R;

	if(R > 255 || R < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 1;
	main();

	}
	cout << "G: ";
	cin >> G;
	if(G > 255 || G < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 2;
	main();

	}
	cout << "B: ";
	cin >> B;
	if(B > 255 || B < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 3;
	main();

	}
	}

	if(Error == 1)
	{
	cout << "R: ";
	cin >> R;

	if(R > 255 || R < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 1;
	main();

	}

	cout << "G: ";
	cin >> G;

	if(G > 255 || G < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 2;
	main();

	}

	cout << "B: ";
	cin >> B;

	if(B > 255 || B < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 3;
	main();

	}

	Error = 0;
	}

	if(Error == 2)
	{
	cout << "G: ";
	cin >> G;

	if(G > 255 || G < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 2;
	main();

	}

	cout << "B: ";
	cin >> B;

	if(B > 255 || B < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 3;
	main();

	}

	Error = 0;

	}

	if(Error == 3)
	{
	cout << "B: ";
	cin >> B;

	if(B > 255 || B < 0)
	{
	cout << "\n\a[ОШИБКА]: Неверное значение введите число от 0 - 255\n";
	Error = 3;
	main();

	}

	Error = 0;
	}

	cout << "html: ";
	cout << hex << R << G << B << endl;

	main();

	return 0;

}
Xe[N]o вне форума Ответить с цитированием
Старый 27.11.2010, 06:34   #2
Xe[N]o
Пользователь
 
Регистрация: 25.10.2010
Сообщений: 14
По умолчанию

Кажется понял, сейчас по смотрим что получится.
Да, нашол ошибку. Я просто инциализировал RGB как глобальные и как локальные переменные. Вся каза была в том, что я помню как уже удолял локальную версию переменных, и компилятор не пожаловался на то, что переменные RGB обозначены 2 раза.

Последний раз редактировалось Xe[N]o; 27.11.2010 в 06:39.
Xe[N]o вне форума Ответить с цитированием
Старый 27.11.2010, 09:01   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
и компилятор не пожаловался на то, что переменные RGB обозначены 2 раза.
А с чего он жаловаться будет? Есть понятие область видимости? Максимум продвинутый компилятор придупредил бы и усе.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение cxLookupComboBox в run time fake2 БД в Delphi 0 17.05.2010 08:31
un-time check failure #2-stack around the variable 't' was corrupted Despar Помощь студентам 1 13.05.2010 10:17
run-time check failure #2-stack around the variable 't' was corrupted Despar Общие вопросы C/C++ 1 13.05.2010 08:33
ActionManager - работа в run - time chingiz Компоненты Delphi 0 10.10.2009 08:48
Ошибка Run-Time error 13 DEZuv Microsoft Office Access 0 03.04.2009 12:25