meu compilador ta dando essa mensagem "warning: comparison between pointer" [RESOLVIDO]

1. meu compilador ta dando essa mensagem "warning: comparison between pointer" [RESOLVIDO]

Raphaela Garcia Pereira
rafaela1

(usa Outra)

Enviado em 17/03/2017 - 10:00h

eu uso o code blocks a linha a que ele se refere o "warning" é:

FILE *fpprodutos;
struct reg_produto produto;
char palavra[100];
int achou=0;

if ((fpprodutos=fopen("produtos.dat","rb"))==NULL){
printf("\n Erro na abertura do Arquivo!");
return;
}

printf("\nDigite a palavra a ser localizada: ");
fflush(stdin); gets(palavra);

while(fread(&produto,sizeof(produto),1,fpprodutos)==1){
if(strcmp(produto.descricao,palavra)!= NULL){ //PRODUTO ENCONTRADO
printf("------------------------\n");
printf("----Dados do Produto----\n");
printf("------------------------");
printf("\nCodigo: %i",produto.codigo);
printf("\nNome: %s",produto.descricao);
printf("\nPreco: %5.2f\n",produto.preco);
achou=1;
}
}

if (achou==0)
printf("\n Nenhum Produto localizado com o Nome %s.",palavra);

fclose(fpprodutos);

}//fim consultarProduto


  


2. Re: meu compilador ta dando essa mensagem

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 17/03/2017 - 10:18h

A macro NULL deve estar sendo atribuída como (void*)0), logo o compilador está informando que você está querendo comparar um número inteiro com um ponteiro.

Eu encontrei a seguinte definição nos meus headers:
/usr/src/linux-headers-4.8.0-41/include/linux/stddef.h:7:#define NULL ((void *)0)


Realize a comparação com 0 apenas. Leia o manual do strcmp.

if (strcmp(palavra, "foobar") == 0) { puts("São iguais"); } 



3. Re: meu compilador ta dando essa mensagem

Raphaela Garcia Pereira
rafaela1

(usa Outra)

Enviado em 17/03/2017 - 10:27h

MUUUUUUUUUUITO obrigado resolveu meu problema :)







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts