写了一段简单的代码,模拟用户输入密码,输入三次错误退出程序,程序运行后功能没问题,但是运行结束后报错“Run-Time Check Failure #2 - Stack around the variable 'count' was corrupted.”
代码如下:
int main()
{
int i=1;
char password[]="123456";
char arr[]={0};
printf("请输入密码: \n");
while(i<=3)
{
scanf("%s",arr);
if(strcmp(password,arr) == 0)
{
printf("密码输入正确!\n");
break;
}
else
{
printf("密码输入错误!! \n");
i++;
}
}
return 0;
}
大概是纯新手小白,检查N次没有发现结果,百度也有各种说法,但基本都看不懂,最后将代码修改为如下:为获取密码的空数组设置数组大小
最终代码成功运行
int main()
{
int i=1;
char password[]="123456";
char arr[10]={0};
printf("请输入密码: \n");
while(i<=3)
{
scanf("%s",arr);
if(strcmp(password,arr) == 0)
{
printf("密码输入正确!\n");
break;
}
else
{
printf("密码输入错误!! \n");
i++;
}
}
return 0;
}
所以空数组引用一定要定义其大小?记录学习问题 顺便求教大佬们
跪谢!!