Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Misha_prog
0 / 0 / 1
Регистрация: 15.04.2013
Сообщений: 184
1

Run-Time Check Failure #2 - Stack around the variable 'after' was corrupted при обращении к символу

22.09.2013, 10:59. Просмотров 1062. Ответов 4
Метки нет (Все метки)

Здравствуйте!!!Программа работает вроде бы правильно,но после отработки программы Я сталкиваюсь с такой вот проблемой, погуглил и нашел там что это ошибка связана с тем что где то есть выход за границы, но не могу разобраться и где и почему это происходит .
Помогите кто сможет! Всем заранее спасибо
вот код :
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 10:59
Ответы с готовыми решениями:

Run-Time Check Failure #2 - Stack around the variable 'y' was corrupted
Даны два строго упорядоченных по возрастанию массива X и Y из n элементов каждый. В массиве X найти...

Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted
Выдает ошибку &quot;Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.&quot;...

Run-Time Check Failure #2 - Stack around the variable '_continue_value' was corrupted
Пишу в VS 2015 и после запуска в конце появляется предупреждение Run-Time Check Failure #2 - Stack...

Run-Time Check Failure #2 - Stack around the variable 'dht' was corrupted
Всем доброго времени суток! Недавно начал программировать на C в среде Microsoft Visual C++....

Ошибка Run-Time Check Failure #2 - Stack around the variable 'tmp' was corrupted
Вот функция где она возникает, validatino - функция проверки на корректность ввода , ...

4
Убежденный
Ушел с форума
Эксперт С++
16145 / 7292 / 1182
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
22.09.2013, 11:37 2
scanf со спецификатором "%s" - это считывание в строку, при этом к
считанной строке автоматически добавляется завершающий ноль.
А в коде используется char (before, after).
1
Misha_prog
0 / 0 / 1
Регистрация: 15.04.2013
Сообщений: 184
22.09.2013, 13:49  [ТС] 3
Спасибо большое! буду читать про спецификаторы!

Добавлено через 17 минут
Извините, тогда не подскажите как считать только один символ пытаюсь через
C
1
scanf("%c",&before);
не получается - тогда вообще не правильно работает...
0
Убежденный
Ушел с форума
Эксперт С++
16145 / 7292 / 1182
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
22.09.2013, 14:09 4
Сделайте char и before массивами char-ов, например.
Тогда в них можно будет считывать строку (%s).
1
Misha_prog
0 / 0 / 1
Регистрация: 15.04.2013
Сообщений: 184
22.09.2013, 14:27  [ТС] 5
ОГРОМНОЕ СПАСИБО!!!! ПОЛУЧИЛОСЬ!!!!!
0
22.09.2013, 14:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 14:27

Ошибка при вставке элемента в массив: "Run-Time Check Failure #2-Stack around the variable 'x' was corrupted."
Задача: Задан массив размерностью 10. Ввести число, которое необходимо записать под 5-им индексом,...

Считывание данных из файла. Run-time check failure #2 variable "i"
Результат выдает верный, но выскакивает эта ошибка. #include &lt;stdio.h&gt; main(void) { FILE...

Переполнение массива. Run-Time Check Failure #2
Добрый день. Я написал программу поиска всех циклов в ориентированном графе, но у меня ошибка ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru