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. 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
    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)
  2. 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,"");