Petit Pb avec char* et Delete[] en C++
Bonjour,
Je souhaiterais savoir pourquoi j'ai une erreur en fin d'execution dans le destructeur (à la première ligne). Merci infiniment !
///////////////////////////////////// .h //////////////////////////////////////
class UneClasse
{
private:
char* name1;
char* name2;
public:
UneClasse( char* , char* );
~UneClasse( void );
}
///////////////////////////////////// .cpp //////////////////////////////////////
UneClasse::UneClasse( char* myName1 , char* myName2 )
{
name1 = myName1;
name2 = myName2;
}
UneClasse::~UneClasse()
{
delete [] name1;
delete [] name2;
}
///////////////////////////////////// main.cpp /////////////////////////////////
int main()
{
char _name1[] = "Texte1";
char _name2[] = "Texte2";
UneClasse c1( _name1 , _name2 );
return 0;
}
Je souhaiterais savoir pourquoi j'ai une erreur en fin d'execution dans le destructeur (à la première ligne). Merci infiniment !
///////////////////////////////////// .h //////////////////////////////////////
class UneClasse
{
private:
char* name1;
char* name2;
public:
UneClasse( char* , char* );
~UneClasse( void );
}
///////////////////////////////////// .cpp //////////////////////////////////////
UneClasse::UneClasse( char* myName1 , char* myName2 )
{
name1 = myName1;
name2 = myName2;
}
UneClasse::~UneClasse()
{
delete [] name1;
delete [] name2;
}
///////////////////////////////////// main.cpp /////////////////////////////////
int main()
{
char _name1[] = "Texte1";
char _name2[] = "Texte2";
UneClasse c1( _name1 , _name2 );
return 0;
}
Configuration: Windows XP Firefox 1.0.7 Visual C++ Express Edition
5 réponses
-
Bonjour OpenGLord, je sais pas d'où vient l'erreur ton code a l'air bon pourtant :-S
-
Ben ça sert à rien de poster alors Jacky
-
le tien non plus a pas lair plu utile que le precedeent :-D alors autant ne pas le faire
-
Bon j'ai réussi à trouver la solution TOUT SEUL c'est pas avec vos chamailleries et remarques pertinentes que j'aurai trouvé une issue à mon problème. En tout cas c'était un peu marrat je vous remercie au moins pour ça :-D
-
Contributeurce qui est fait est très laid !
Tu utilises un delete sur une variable que la classe n'a pas alloué elle même.
Et la en l'occurrence sur un tableau !
Il ne faut pas tenté de libérer de la mémoire qui n'a pas été alloué avec new, sinon ça fait une erreur.