Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Juin

funcoes.c:551: warning: comparison between pointer and integer

Mensagens Recomendadas

Juin


Livro ProcurarAssociativa(char procura, int index){
    int i;
    Livro dados[i], d;
    for(i=0; i<index; i++){
        if(procura == dados[i].requisitante )
            EscreverProposta(dados[i], index);
        if(procura == dados[i].autores)
            EscreverProposta(dados[i], index);
        if(procura == dados[i].coleccao )
            EscreverProposta(dados[i], index);
        if(procura == dados[i].editor )
            EscreverProposta(dados[i], index);
        if(procura == dados[i].titulo )
            EscreverProposta(dados[i],  index);
    }
}

Estou a ter estes erros...

funcoes.c:551: warning: comparison between pointer and integer

funcoes.c:553: warning: comparison between pointer and integer

funcoes.c:555: warning: comparison between pointer and integer

funcoes.c:557: warning: comparison between pointer and integer

funcoes.c:559: warning: comparison between pointer and integer

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
OldCoder

Pois, parece-me que tencionas comparar apontadores a caracteres, e não caracteres. Declara char *procura em vez de char procura, e não só te livras do warning, como o algoritmo funciona como queres.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Juin

pois era o k estava a fazer mas recebo...

        if(i<index && strcmp(dados[i].titulo, procura)!=0)
            EscreverProposta(dados[i],index);
        if(i<index && strcmp(dados[i].requisitante, procura)!=0)
            EscreverProposta(dados[i],index);
        if(i<index && strcmp(dados[i].autores, procura)!=0)
            EscreverProposta(dados[i],index);
        if(i<index && strcmp(dados[i].coleccao, procura)!=0)
            EscreverProposta(dados[i],index);
        if(i<index && strcmp(dados[i].editor, procura)!=0)
            EscreverProposta(dados[i],index);

funcoes.c:555: warning: passing arg 1 of `strcmp' from incompatible pointer type

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Localhost

No primeiro post, dados pareceu-me um vector de structs e neste último deixou de ser?

Não será antes:

dados[ i ]?


here since 2009

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
OldCoder

Podes postar uma declaração da estrutura Livro? Eu tive a impressão de que os membros seriam char*, mas com esse erro não tenho mais a certeza.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Localhost

OldCoder, ele estava a ter o problema devido ao facto de estar a comparar strings com o operador ==.

Agora o último erro era devido a ele não estar a colocar o indice para identificar qual era a estrutura dentro do array de estruturas, como colocou no primeiro post. Se ele já pôs o indice já deve compilar sem warnings.


here since 2009

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
OldCoder

OldCoder, ele estava a ter o problema devido ao facto de estar a comparar strings com o operador ==.

Agora o último erro era devido a ele não estar a colocar o indice para identificar qual era a estrutura dentro do array de estruturas, como colocou no primeiro post. Se ele já pôs o indice já deve compilar sem warnings.

Agora vi! Obrigado pelo esclarecimento. Não tinha prestado atenção ao índice.

Se não houve mais reacções do autor do post original, o problema deve estar mesmo resolvido.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
TheDark

Ele tinha o índice, mas [ i ] é a tag BBCode para itálico. Como não pôs tags code, o BBCode comeu o índice. Logo, o problema não era esse (como se pode ver agora).

@Juin: qual é a linha 555?


Desaparecido.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.