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

Dúvidas na atribuição de valores nos índices dos arrays

Estou tendo alguns problemas. No meu compilador, quando tento atribuir os caracteres aos índices do array recebo o seguinte erro:

warning: assignment makes integer from pointer without a cast [-Wint-conversion]
     palavrasecreta[0] = "M";

Em outro compilador eu recebo o mesmo erro, no entanto ele imprime os seguintes caracteres ao invés da palavra melancia:

dfhjlnpj

O meu código está assim:

#include <stdio.h>

int main(void){

    char palavrasecreta[9];

    palavrasecreta[0] = "M";
    palavrasecreta[1] = "e";
    palavrasecreta[2] = "l";
    palavrasecreta[3] = "a";
    palavrasecreta[4] = "n";
    palavrasecreta[5] = "c";
    palavrasecreta[6] = "i";
    palavrasecreta[7] = "a";

    for (int i = 0; i < 9; i++){
        printf("%c", palavrasecreta[i]);
    }
}

Gostaria de entender isso e tentar solucionar o problema. Acredito que fiz a mesma coisa que o professor e ele não recebeu esses warnings como eu :/.

1 resposta
solução!

Bom dia, Roberto!

Como você está trabalhando com variáveis do tipo char, você tem que utilizar aspas simples em vez de aspas duplas.

char exemplo[7];

exemplo[0] = 'M';
...
exemplo[7] = 'A';

As aspas duplas são utilizadas quando você está trabalhando com strings. Caso você queira manter as aspas duplas, você terá que fazer duas alterações:

Primeira

char* palavrasecreta[9]; 

Segunda:

printf("%s", palavrasecreta[i]); // %s porque você está trabalhando com string

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software