Probleme avec char* in c++

Résolu/Fermé
amisoft Messages postés 2 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 23 novembre 2011 - Modifié par 00lina00 le 23/11/2011 à 00:23
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 - 23 nov. 2011 à 01:41
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

KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 016
23 nov. 2011 à 00:55
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
amisoft Messages postés 2 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 23 novembre 2011
23 nov. 2011 à 01:05
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
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 016
23 nov. 2011 à 01:41
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