What's going on here?
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
void escolha_simb(char *jog1, char *jog2) //** escolhe quem vai ser x ou o
{
char esc;
while (1) {
printf("\njogador 1, escolha X ou O \n");
fflush(stdin);
scanf("%c",&esc);
if (esc == 'x')
{
strcpy(jog2,"O");
strcpy(jog1,"X");
break;
}
else if (esc == 'o')
{
strcpy(jog2,"X");
strcpy(jog1,"O");
break;
}
}
}
int main(int argc, char const *argv[]) {
char jog1=0,jog2=0;
printf("jog1: %c jog2: %c",jog1,jog2 );
escolha_simb(&jog1,&jog2);
printf("depois\njog1: %c jog2: %c",jog1,jog2 );
return 0;
}
Output, if you choose X:
jog1: jog2: jogador 1, escolha X ou O x depois jog1: X jog2: O
but if you reverse the strcpy()
:
if (esc == 'x')
{
strcpy(jog1,"X");
strcpy(jog2,"O");
break;
}
else if (esc == 'o')
{
strcpy(jog1,"O");
strcpy(jog2,"X");
break;
}
output, if you choose X:
jog1: jog2: jogador 1, escolha X ou O x depois jog1: jog2: O
Why does jog1
get null?