Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Função chuta

Eu não consegui compreender muito bem, pois se são váriaveis diferentes como que o conteudo do array consegue ser enviado ? como a variavel chutes armazena o chute na váriavel e envia ao main() ?

void chuta(char chutes[26], int tentativas)
{
        char chute;

        printf("Digite sua letra\n");
        scanf(" %c" &chute);

        chutes[tentativas] = chute;
}
1 resposta
solução!

Olá Victor, tudo bem com você?

Você fez uma pergunta muito interessante, e que iremos abordar e responder na próxima aula do curso: Ponteiros e Endereços de Memória, mas vou te adiantar um pouco da resposta, mas fique tranquilo que o instrutor irá explicar tudo novamente :)

Na linguagem C, temos duas formas de passar os valores para uma função:

  • Uma cópia do valor
  • O endereço da memória

No exemplo da aula mostramos que quando utilizamos o tentativas estamos apenas copiando o valor e que as mudanças que fazemos na função não se reflete no main pois são totalmente distintos

Acontece que também podemos passar o endereço na memória, e ai a situação é diferente, quando alteramos o valor que está em um endereço de memória a mudança é feita globalmente

Já no próximo vídeo iremos mostrar como ao invés de passar uma cópia do valor de tentativas passar o endereço de tentativas, e ai que está a mágica :)

Quando passamos um array para uma função por padrão não estamos copiando o valor dele, e sim, passando o endereço de memória, então dentro da função chute quando alteramos o valor de uma posição no array, como é um endereço, a mudança reflete dentro do código inteiro :)

Mas fique tranquilo se pareceu confuso, teremos várias aulas para tentar explicar todas as características dessa ferramenta nova, e você vai ver que é muito interessante!

Compreendeu? Qualquer coisa estou a disposição :)

Abraços e Bons Estudos!