Página 1 de 1

A função STRCMP apresenta erro na compilação.

MensagemEnviado: 30 Jan 2009 17:33
por fabio_pic
Boa tarde senhores,

Estou tentando fazer uma comparação entre duas strings no CCS mas na compilação apresenta o erro "Attempt to create a pointer to a constant".

A linha do código é a seguinte:

if (strcmp(vetor_dados, "OK"))

Agradeço desde já.
Fábio.

MensagemEnviado: 30 Jan 2009 20:45
por joao
Ola Fabio,

Dá uma olhada neste tópico aqui do fórum:
http://www.asm51.eng.br/phpbb/viewtopic ... 804d589690

[]'s

MensagemEnviado: 30 Jan 2009 23:02
por msamsoniuk
acho que ajudaria mais se soubessemos como "vetor_dados" eh declarado.

MensagemEnviado: 31 Jan 2009 09:08
por fabio_pic
Obrigado joao. Já li este tópico mas parece que estou com problema na sintaxe da strcmp().

Marcelo,

O vetor foi declarado da seguinte forma:

char vetor_retorno[]={0,0,0,0,0};


Abraços,
Fábio.

MensagemEnviado: 31 Jan 2009 14:02
por msamsoniuk
ah, mas quando vc declara p[] sem tamanho eh praticamente o mesmo que declarar *p e atribuir, ou seja, o que o compilador vai fazer eh criar um ponteiro para uma area constante, possivelmente na flash, e strcpy() sabe disso jah em tempo de compilacao, motivo pelo qual ele alerta vc.

entao vc tem que declarar explicitamente p[tamanho], assim eh efetivamente criado um array com o tamanho desejado. e vc nao precisa iniciar esse array inteiro, basta usar a notacao de string normal:

char p[32] = "";

vai reservar 32 bytes e iniciar com uma string vazia. desta forma strcpy() detecta que o destino eh em area de memoria ram e passa a funcionar corretamente.