Problème de compilation

Sulfurique Messages postés 5 Date d'inscription samedi 14 juin 2003 Statut Membre Dernière intervention 2 juillet 2006 - 1 juil. 2006 à 01:53
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 - 3 juil. 2006 à 07:51
Bonsoir :)

J'ai un ptit probleme lorsque je compile mon projet sous Visual C++ 2005:

error C2440: '=' : cannot convert from 'const char *' to 'char *'

Malgrés mes recherches sous google, soit les reponses ne correspondait pas, soit jcomprenais rien à l'expliquation :s .

Merci d'avance de votre aide.

7 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
1 juil. 2006 à 02:25
C'est simple. Tu essais de faire d'asigèr à un char * une valeur constante (LPCSTR(const char *)). Si c'est possible, change ta valeur const char * par un char * sinon essais de faire un cast.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
1 juil. 2006 à 02:28
Oups pardon. Petite érreure dans ma phrase:

Tu essais d'assignier à un char * une valeur constante (LPCSTR(const char *)).

Si tu ne sais pas ce qu'est un cast, voici un exemple:

test = (char*)test2;
___________________________________________
Les plus grands esprits trouvent toujours une solution
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
1 juil. 2006 à 03:11
Mais en général un cast de ce type c'est mauvais signe: ca veut dire que tu modifies unz zone mémoire qui ne devrait pas être modifiée

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
1 juil. 2006 à 03:42
Je sais. C'est pour ça que je lui ai conseillé de changer sa variable pour un char* mais si il ne peut pas, c'est la que ça se complique. Mais c'est très rare qu'on ne puisse pas changer un valeur constante pour une valeur normal (à vrai dire, j'ai jamais vue ça). Une variable char * peut très bien passer pour une variable const char * mais le contraire est dangereux.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
1 juil. 2006 à 15:56
Ce n'est pas seulement le type du pointeur qu'il faut changer car il
doit correpondre avant tout au type de l'adresse qui lui est assignée,
ca ne doit pas etre l'adresse d'un char constant ou d'un tableau de
char constant.
0
Sulfurique Messages postés 5 Date d'inscription samedi 14 juin 2003 Statut Membre Dernière intervention 2 juillet 2006
2 juil. 2006 à 00:14
Merci beaucoup pour vos réponses, je testerais dès que possible. :)

Même si je pense que vos réponses sont exacte, j'attendrai de l'avoir fait pour les acceptées.

Merci encore et bon week end
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
3 juil. 2006 à 07:51
char* buffer = new char[5012];
strcpy(buffer, ta_valeur_de_type_constante);

Ca peut toujours être utile

//Libère ma mémoire que j'ai utilisé
this->GetCurrentConversation()->FreeAllocatedMemory(REASON_UNUSED);
0
Rejoignez-nous