Petit Pb avec char* et Delete[] en C++
OpenGLord
-
Char Snipeur Messages postés 10112 Statut Contributeur -
Char Snipeur Messages postés 10112 Statut Contributeur -
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;
}
A voir également:
- Petit Pb avec char* et Delete[] en C++
- Hiberfil.sys delete - Guide
- Just delete me - Guide
- Petit 2 ✓ - Forum Bureautique
- Comment écrire mètre carré avec un m+2 expos? ✓ - Forum Windows
- Petit point vert snap ✓ - Forum Snapchat
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.
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