Probleme avec char* in c++

Résolu
Bonjour,

j'ai besoin de connaitre le problemme sur mon sous-programme il n'affiche qucun probleme mais il se plante apres l'exucution

char *phrase()
{
char *ch;
ch=new char;
ch="";
char *a;
int g=10;
strcat(ch,"M. ");
strcat(ch,this->prenom);
strcat(ch," ");
strcat(ch,this->nom);
strcat(ch,"est né en");
strcat(ch,itoa (this->datnais,a,g));
strcat(ch,", il est ");
strcat(ch,this->stf);

return ch ;
}
cette methode est inclure dans un class s'apelle perssone
lorsque j'invoqué cette methode au main avec
char *c;
c=p1.phrase();
le programme n'affiche aucun probleme mais il se plante
j'utilise dev++
merci d'avance

2 réponses

  1. Modérateur
    Où est faite l'allocation mémoire là-dedans ?
    char *ch;
    ch=new char;
    ch="";

    Essaye ça ce sera mieux :
    char ch[BUFSIZ];
    strcpy(ch,"");
    1
    1. merci mr KX le probleme a été resolu mais est ce que tu peux me expliquer cette ce genere a cauqe de quoi et qui se que cette "BUFSIZ" et merci
      0
      1. Modérateur
        L'erreur était générée parce que tu avais mal alloué la mémoire (erreur la plus courante quand on manipule les pointeurs). BUFSIZ est une constante, associé à la taille par défaut du tampon (entre 512 et 4096 selon les compilateurs)
        0