Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Thales Muchante

C Erro de [Warning] deprecated conversion from string constant to 'char*

Recommended Posts

#include <stdio.h>
#include <stdbool.h>
int main(void)
{
_Bool funcao(char string[],char string2[]);	

if (funcao("xbox","xbox"))
	printf("As duas palavras sao iguais");
else printf("As palavras sao diferentes");

}
_Bool funcao(char string[],char string2[]){
	
	int s1=0;
	
	while (string[s1]==string2[s1] && string[s1] != '\0' && string2[s1] != '\0')
	s1++;
	
	if(string[s1]=='\0' && string2[s1]=='\0')
	return 1;
	
	else return 0;
	
	
}

Boa jovens , estou querendo uma ajuda bem simples , estou inserindo este código no dev c++ e ele me acusa esse seguinte erro : C:\Users\tmuch\Documents\racun.cpp    [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings] ................ porém quando compilo está 100% funcional e também no codeBlock ele funciona DBoas qual seria o meu erro ???? GRATO PELA ATENÇÃO !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um Warning em realidade não é um erro e sim um "Aviso". O mesmo ja diz que a conversão é "deprecated" ou o que é a mesma coisa, "desaconselhável". Por tanto seu código não tem erros realmente. Ou sim?

Todo o problema vem a causa que você esta mandando uma string literal(string constant) para um ponteiro a char(char*). Que acontece se nessa função inconscientemente você tentasse mudar essa literal? Ja entendeu por que é desaconselhável, e ja entendeu porque funciona sem erros aparentes? Porque você não ta tentando mudar essa string, somente está usando a modo de "consulta".

O erro é devido a que o programa acha que você não tem o controle, é como si fosse disparar dardos no escuro tentando acertar um alvo que não ta vendo, devido "conversões implícitas", que possivelmente, você "não saiba" no fundo, o que acontece.

Como eliminar o warning? Fácil! Indique que não há nenhum erro, que o que você quer realizar é isso mesmo, faça o cast de forma "explicita".
Nessa linha:
if (funcao("xbox","xbox"))
mude para
if (funcao((char*)"xbox",(char*)"xbox"))

Ou declare "xbox" como um vetor e passe-o normalmente. Fazendo isso você garante que "xbox" possa ser mudada, sempre e quando tiver espaço, então não terá mais erros >_<.

Saiba que isso é perfeitamente legal em C, por isso se trata de um aviso. Um aviso somente quer lhe advertir que seu programa pode não funcionar como você quer, o que não se trata disso neste caso, mas pode acontecer. Valeu!?

Fui!

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vangodp eitaaaa , sou novato na linguagem por isso a duvida , porém tu amigo ajudo dmais , só tenho a agradecer valeu memooo !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×