Probleme avec char* in c++

Résolu
amisoft Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 19031 Statut Modérateur -
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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. amisoft Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
     
    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. KX Messages postés 19031 Statut Modérateur 3 020
       
      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