写了一段简单的代码,模拟用户输入密码,输入三次错误退出程序,程序运行后功能没问题,但是运行结束后报错“Run-Time Check Failure #2 - Stack around the variable 'count' was corrupted.”

关于“Run-Time Check Failure #2 - Stack around the variable

代码如下:

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;

}


所以空数组引用一定要定义其大小?记录学习问题  顺便求教大佬们 

跪谢!!