Un cast suffit amplement à enlever le paramètre constant sur un pointeur. Mais si tu es ammené à faire ca, c'est que ton programme est mal conçu.
De toute façon dans ton cas:
const char* str1=MaFunction(); strcat((char*)str1, str2);
|
Il n'y a pas assez de place pour stocker les deux chaines de caractères, dépassement de tableau. Donc la solution:
const char* str1=MaFunction();
char* str3=new char[strlen(str1) + strlen(str2) + 1]; strcpy(str3, str1); strcat(str3, str2);
// ...
delete [] str3;
|
Kaid -
kaid.fr.st-------------------------------
Réponse au message :
-------------------------------
> Bah si lol, suffit de convertir ton retour en char *, je l'es fé avec une petite routine, mais je pense qu'y a de meilleur solus ...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Je pense que tu ne pourra pas concatener ce que te retourne ta fonction et autre chose avec strcat().
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > >
> > >
> > > On y vient lol, voila pourquoi j'ai besoin de convertir un 'const char *' en 'char *', j'ai une fonction qui me renvoie un const char * que je dois ensuite passé par cette fonction strcat, je suis donc obliger de la convertir en char *.
> > >
> > > voila
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Je sais tres bien comment marche strcat().
> > > >
> > > > Tu essayerai pas de faire strcat("un mot", "un autre mot"); par hazard ?
> > > > La c'est sur que ca fonctionnera jamais.
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > >
> > > > > ué justement si tu c comment marche strcat tu devrai comprendre :
> > > > >
> > > > > la fonction prend la chaine du second parametre ( const char * ) et l'ajoute à la chaine du premier parametre, qui doit donc, ce premier parametre, etre modifiable et non constant ( logique, car une chaine constante ne pe pas etre reecrite ) ... et donc pas de cast possible aussi ...
> > > > >
> > > > > voila reflechi au truc ... fé des test si tu ve, tu vera ça marche pas.
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > char * et const char* ne sont que des pointeurs sur char, rien de plus.
> > > > > > Le const veut simplement dire que la fonction ne doit pas modifier la chaine de caractere.
> > > > > > Essaie un cast (char*) devant ton "const char*".
> > > > > >
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > >
> > > > > > > mdr, en tout cas pas pour ' strcat(char *, const char *) ', essai de passé un const char * en premier parametre de cette fonction ( trés connu ), tu vera bien ...
> > > > > > >
> > > > > > > Il faut imperativement convertir le const char * en char *, pas le choix, sinon tu rentre pas dans la fonction.
> > > > > > >
> > > > > > > Si vous avez des idée ???
> > > > > > >
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > Salut,
> > > > > > > > const char* et char* c'est la meme chose.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > -------------------------------
> > > > > > > > Réponse au message :
> > > > > > > > -------------------------------
> > > > > > > >
> > > > > > > > >
> > > > > > > > > SAlut,
> > > > > > > > >
> > > > > > > > > j'aimerais convertir un 'const char *' en 'char *', bizarement aucune libraire ne le fé, ou alors j'ai pas trouvé lol. Donc si vous pouviez m'aider.
> > > > > > > > > MErci d'avance.
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>