Run-Time Check Failure #2 - Stack around the variable 'after' was corrupted при обращении к символу - C (СИ)
Формулировка задачи:
Здравствуйте!!!Программа работает вроде бы правильно,но после отработки программы Я сталкиваюсь с такой вот проблемой, погуглил и нашел там что это ошибка связана с тем что где то есть выход за границы, но не могу разобраться и где и почему это происходит .
Помогите кто сможет! Всем заранее спасибо
вот код :
#include <stdio.h> #define METER 'M' #define INCH 'I' #define FT 'F' #define MILE 'L' #define MI 38.4 #define MF 3.2 #define ML 0.000621 #define IF 0.083 #define IL 0.00001578 #define FL 0.000189 int main(){ int value; char before; char after; printf("Enter the value to convert\n"); scanf("%d",&value); printf("Enter magnitude before follows:meter-'M',Inch-'I',ft-'F',Mile-'L' \n"); scanf("%s",&before); printf("Enter magnitude after follows:meter-'M',Inch-'I',ft-'F',Mile-'L' \n"); scanf("%s",&after); printf("%s",before); switch(before){ case METER: switch(after){ case INCH: printf("%.2f",value*MI); break; case FT: printf("%.2f",value*MF); break; case MILE: printf("%.2f",value*ML); break; } break; case INCH: switch(after){ case METER: printf("%.2f",value*(1/MI)); break; case FT: printf("%.2f",value*IF); break; case MILE: printf("%.2f",value*IL); break; } break; case FT: switch(after){ case METER: printf("%.2f",value*(1/MF)); break; case INCH: printf("%.2f",value*(1/IF)); break; case MILE: printf("%.2f",value*FL); break; } break; case MILE: switch(after){ case METER: printf("%.2f",value*(1/ML)); break; case FT: printf("%.2f",value*(1/FL)); break; case INCH: printf("%.2f",value*(1/IL)); break; } break; default: printf("Don't set start value"); } return 0; }
Решение задачи: «Run-Time Check Failure #2 - Stack around the variable 'after' was corrupted при обращении к символу»
textual
Листинг программы
scanf("%c",&before);
Объяснение кода листинга программы
Код начинается с команды, которая считывает один символ из стандартного ввода и сохраняет его в переменной типа char с именем before
.
Список:
- Команда: scanf(
%c
,&before); Описание: Считывание одного символа из стандартного ввода и сохранение его в переменнойbefore
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д