@Lavenderfilth

Как исправить ошибку variable is being used without being initialized?

При компиляции постоянно выбивает Run-Time Check Failure #3 - The variable 'znak' is being used without being initialized.

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int i, j = 0, k, n = 0, r = 0, f = 0;
	char num2[30];
	char oper1[13];
	char oper2[13];
	char znak;
	int result[30], chys1[20], chys2[20];
	system("chcp 1251");
	printf("Введіть операцію: \n");
	gets_s(num2);
	for (i = 0; num2[i] != '\0'; i++)
	{
		if (num2[i] == ' ')
		{
			oper1[i] = '\0';
			znak = num2[i + 1];
			i = i + 3;
			for (i; num2[i] != ' ' && num2[i] != '\0'; i++)
			{
				oper2[j] = num2[i];
				j++;

			}
			oper2[j] = '\0';
			break;
		}
		else
		{
			oper1[i] = num2[i];
		}
	}
	while (oper1[f] != '\0') {
		f++;
	}
	for (k = 0; oper1[k] != '\0' && oper1[k] != '\0'; k++)
	{
		chys1[k] = oper1[k] - 48;
		chys2[k] = oper2[k] - 48;

	}
	for (n; n < f; n++)
	{
		if (znak == '^')
			result[n] = chys1[n] ^ chys2[n];
		if (znak == '&')
			result[n] = chys1[n] & chys2[n];
		if (znak == '|')
			(result[n] = chys1[n] | chys2[n]);
	}

	for (r; r < f; r++)
	{
		printf("%d", result[r]);
	}


	return 0;
}
  • Вопрос задан
  • 3737 просмотров
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
Что не понятного в фразе?
The variable 'znak' is being used without being initialized.

Переменная 'znak' используется без инициализации.

Инициализация при объявлении выглядит так:char znak = 0;, а не как у вас char znak; - это объявление без инициализации.

Нельзя обращаться к переменной, пока в нее не присвоили какое либо значение.
Ответ написан
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Все правильно говорит - обьявили переменную char znak; но значения не присвоили, а это потенциальный источник ошибок и сбоев, тем более, что по ней индексируетесь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы