Olá Juliano! Tudo joia?
Parece que você está tentando criar um array de ponteiros para strings, o que é totalmente possível em C. O erro que você está enfrentando pode ser devido à forma como o compilador está interpretando a declaração. Vamos verificar alguns pontos:
Declaração do Array de Ponteiros: A forma como você declarou o array reference
está correta. Você está criando um array de ponteiros que aponta para as strings word1
e word2
.
Erro de Compilação: A mensagem de erro indica que a expressão deve possuir um valor constante. Isso geralmente acontece quando o compilador espera um valor constante em um contexto onde você está usando variáveis ou ponteiros.
Solução: Certifique-se de que a declaração do array reference
está fora de qualquer função ou que não está sendo alterada em tempo de execução de uma forma que o compilador não consiga prever. Se estiver dentro de uma função, verifique se não há nenhum outro erro de sintaxe ou contexto que possa estar afetando a compilação.
Aqui está um exemplo simplificado que deve funcionar:
#include <stdio.h>
int main() {
char *word1 = "lua";
char *word2 = "sol";
char *reference[] = {word1, word2};
char received[2];
printf("%s\n", reference[0]); // Deve imprimir "lua"
printf("%s\n", reference[1]); // Deve imprimir "sol"
return 0;
}
Se o problema persistir, verifique se há outros erros no código ou no ambiente de desenvolvimento que possam estar causando o erro.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.