Petit Pb avec char* et Delete[] en C++
OpenGLord
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
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
-
ce 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. -
-
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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