Petit Pb avec char* et Delete[] en C++
OpenGLord
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 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;
}
A voir également:
- Petit Pb avec char* et Delete[] en C++
- Hiberfil.sys delete - Guide
- Juste delete me - Guide
- Petit 2 ✓ - Forum Bureautique
- Comment imprimer une photo en petit - Forum Photo numérique
- Trier du plus petit au plus grand excel - Guide
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