报错:Run-Time Check Failure #2 - Stack around the variable ‘a‘ was corrupted.

项目场景:

读取一个65到122之间的整型数,整型数大于等于65,小于等于122,然后以字符形式输出它,例如读取了97,输出字符a。

问题描述:

报错:Run-Time Check Failure #2 - Stack around the variable ‘a’ was corrupted.
环境:vs2019

#define _CRT_SECURE_NO_WARNINGS   //解决scanf报错问题
#include
int main()
{
	char a; 
	scanf("%d", &a);    //输入整型数据输出对应字符
	printf("%c\n", a);  //整型数在0128之间可以用字符型输出
}

原因分析:

操作空间超出了变量本身占用的空间的大小,char字符型占空间1位,而整数型占空间4位。

解决方案:

在字符型数据中存一个整型数,且整型数范围在0到128之间的就可以字符形式输出。

#define _CRT_SECURE_NO_WARNINGS   //解决scanf报错问题
#include
int main()
{
	int a; 
	scanf("%d", &a);    //输入整型数据输出对应字符
	printf("%c\n", a);  //整型数在0128之间可以用字符型输出
}

你可能感兴趣的:(C语言初中高级集合,c语言)