Run-Time Check Failure #2 - Stack around the variable 'c' was corrupted. Помогите, почему исключение?
#include <iostream>
#include <stdio.h>
#include <Windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char c,
f,
b;
unsigned char n;
unsigned int UnitStateWord;
printf("Введите код состояния (0 - 31) >");
scanf_s("%d", &c);
UnitStateWord = ((unsigned char)c & 0x1F) << 11;
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
scanf_s("%d", &c);
Читаете как int, но не в 4-байтный int, а в однобайтный char.
Перезаписывая 3 лишних байта в стеке. Портя стек вокруг переменной c. О чем и говорит сообщение...