Привет, я новичок в языке c и до конца не разбираюсь в указателях.Я пишу простой процесс аутентификации по имени пользователя и паролю для моей программы, в настоящее время он выглядит так:
void authenticate_process(int cli_sockfd){
/* Authentication Process */
write(cli_sockfd, "USN", 3);
char *username;
username = recv_msg(cli_sockfd);
printf("[DEBUG] Client username is %s.\n", username);
write(cli_sockfd, "PSW", 3);
char *password;
password = recv_msg(cli_sockfd);
printf("[DEBUG] Client Password is %s.\n", password);
//From Here the program breaks
bool approval = authenticate_login(username, password);
printf("%c", approval);
}
bool authenticate_login(char *username, char *password)
{
printf("Made it here");
FILE *file;
char *file_username;
char *file_password;
bool match;
printf("%s", username);
printf("%s", password);
// BLAH BLAH BLAH MORE CODE IN THIS SECTION
return match;
}
Я могу получить и распечатать имя пользователя и пароль клиента в методе authenticate_process, но как только я доберусь до линииbool approval = authenticate_login(username, password);
я получаю Bus Error: 10
Я верю, что это связано с тем, как я передаю символы, но я могу ошибаться.Может кто-нибудь объяснить и показать, как решить мою проблему?