[Warning] char format, different type arg (arg 2)

[Warning] char format, different type arg (arg 2)

por Claudio Freitas -
Número de respostas: 7
char query[80];
while ( scanf("%s", &query) == 1 ) {
    /* ... */
}

Eu estou recebendo o seguinte 'warning' referente ao código acima:

In function 'main':
[Warning] char format, different type arg (arg 2)


1. Alguma sugestão de como solucionar?
2. Existe algum site com a documentação completa da linguagem C, assim como existe no site da Sun para o Java? (Mesmo que o site do prof. Paulo Feofiloff seja de excelente ajuda)
Em resposta à Claudio Freitas

Re: [Warning] char format, different type arg (arg 2)

por Wellington Castello -
1 - Tira esse & do scanf.
2 - Existe um livro, na minha opnião o melhor sobre a linguagem, "The C Programming Language" - Brian W. Kernghan e Dennis M. Ritchie ou simplesmente K&R. Existe também o documento ISO-9899-1999-C99 com (quase) todas as espeficações da linguagem C (veja os links), mas se você usa linux é melhor ver o documento anterior a esse pois esse padrão ainda não foi completamente implementado no gcc (a maior parte já foi...).
E talvez esses links possam te ajudar:
C99
Forums
Sua dúvida 1 está bem explicada no K&R ou em qualquer outro documento, acredito, onde tratam sobre character arrays e pointers.
Até mais.
Em resposta à Wellington Castello

Re: [Warning] char format, different type arg (arg 2)

por João Francisco Amorim Enomoto -
Wow, que bibliografia! Só complementando o que o Wellington disse, um vetor ou ponteiro é rigorosamente um endereço de memória. Quando você for passar a referência de um vetor para uma função que altera o conteúdo desse vetor, só passando o endereço da primeira casa (vetor[0] ou simplesmente vetor, eles apontam para o mesmo trecho de memória), passe o apontador ou vetor direto para a função. Da maneira que você escreveu Cláudio, você estaria passando o endereço do endereço do vetor, daí vem o warning.

Abraços!
Em resposta à Wellington Castello

Re: [Warning] char format, different type arg (arg 2)

por Vanessa Sabino -
Incluir o link do International Obfuscated C Code Contest foi maldade com quem vai corrigir os EPs! diabólico

Bom, você colocou link pra especificação em pdf, então só complementando vou indicar aqui um lugar em que está em html:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n843.htm
Em resposta à Vanessa Sabino

Re: [Warning] char format, different type arg (arg 2)

por Wellington Castello -
Foram só uns copy/paste :D Nem reparei que tinha colado o link  do Obfuscated C Code Contest, de qualquer modo não deixa de ser legal hehe. Nada que o indent ep.c não resolva no caso de alguém querer fazer ascii art no EP :D