У меня есть следующий код:
_Bool grantAccess(char *password){
char goodPassWord[]= "goodpass";
return (0 == strcmp(password, goodPassWord));
}
_Bool grantAccessExercise(void){
char password[9];
int allow = 0;
printf("Please enter password: ");
gets(password);
if (grantAccess(password)) {
allow = 1;
}
return (allow != 0);
}
Когда я ввожу любую комбинацию из 10 символов для пароля, она переполняется и перезаписывает нулевой терминатор.Может кто-нибудь объяснить, почему значение, не заканчивающееся нулем, заставляет StrCmp возвращать 0?