1
resposta

Sintaxe em C

é possivel montar uma estrutura como essa? Minha ideia é usar a mesma logica do jogo, dois arrays, um armazena e ou outro faz a leitura do que foi inserido e compara.

//VAR CONTROL

char *word1 = "lua"; // ponteiro
char *word2 = "sol";

int base_signal= 1;

char *reference[]= {word1,word2};  // supostamente nesta linha tenho o erro do print abaixo
char received [2];

Erro de sintaxe

1 resposta

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:

  1. 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.

  2. 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.

  3. 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 ✓.