Bonjour à tous,
Mon problème me semble quelque peu étrange, je vais donc essayer de l'expliquer clairement.

Voici la classe que j'ai réalisé pour un jeu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
class CJoueur {
 
private :
char _Nom[20];

public:
CJoueur(char *Nom);
int ObtienNom(char * MonNom);
};
Et voici la définition des méthodes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
// Le constructeur
CJoueur::CJoueur(char *Nom){
strcpy(_Nom, Nom);
}
 
// La fonction qui donne le nom
int CJoueur::ObtienNom(char * MonNom){
strcpy(_Nom, MonNom);
return 0;
}
Mon problème est le suivant :
des que j'utilise le fonction obtienNom(), plus rien ne s'affiche sur la console.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Voici le Main :
#include <iostream.h>
#include "Joueur.h"
 
int main(){
 
CJoueur J("paul");
char Nom[20];

J.ObtienNom(Nom);

cout << "essai" << endl;
// rien ne se passe
 
return 0;
}
En cherchant la cause de ce problème j'ai trouvé :
si je met en commentaires strcpy dans la fonction ObtienNom tout redevient normal, et la console affiche essai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
int CJoueur::ObtienNom(char * MonNom){
//strcpy(_Nom, MonNom);
return 0;
}
?????? (je n'ai aucune erreur ni de warning)

si quelqu'un comprend ce qui se passe, Merci d'avance!