Olá João! Como vai?
O aviso que você está recebendo, "assignment makes integer from pointer without a cast", ocorre porque você está tentando atribuir uma string (entre aspas duplas) a um elemento de um array de caracteres, o que não é permitido. Em C, strings entre aspas duplas são tratadas como ponteiros para o primeiro caractere da string, e não como caracteres individuais.
Para corrigir isso, você deve usar aspas simples para atribuir caracteres individuais ao array. Aqui está o seu código corrigido:
#include <stdio.h>
int main() {
char palavrasecreta[20];
palavrasecreta[0] = 'M';
palavrasecreta[1] = 'E';
palavrasecreta[2] = 'L';
palavrasecreta[3] = 'A';
palavrasecreta[4] = 'N';
palavrasecreta[5] = 'C';
palavrasecreta[6] = 'I';
palavrasecreta[7] = 'A';
palavrasecreta[8] = '\0'; // Não esqueça do caractere nulo para terminar a string
// Ou você pode simplesmente usar sprintf para atribuir a string de uma vez
sprintf(palavrasecreta, "MELANCIA");
printf("%s\n", palavrasecreta); // Para verificar o resultado
}
Com essas alterações, o aviso deve desaparecer. Você também pode usar sprintf
diretamente para inicializar a string, como mostrado no exemplo acima, o que é uma maneira mais simples e eficiente.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.