bonjour,

alors j'ai un trou et je n'arrive pas a comprendre ce qui se passe, je m'explique

je fais une classe toute bête

Dans le .h
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
 
class Toto
{
 
    public:
 
    Toto(); 
    void choixTitre(const char *titre);
    ~Toto();
 
 
    private:
 
    char V_titre[30];
};

Le but est de recuperer le cons char *titre et de le mettre dans l'attribut char V_titre.
Etant donnée que l'on ne peut pas faire une simple assignation je fait donc de la facon suivante :

dans le .cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
//je zap l'initialisation
 
void Toto::choixTitre(const char *titre)
{
    int i = 0;
    while(*titre){
        V_titre[i] = *titre;
        titre++; i++;
    }
}
Ce code plante et je ne comprend pas pourquoi, mais quand je fais ceci, ca marche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
//je zap l'initialisation
 
void Toto::choixTitre(const char *titre)
{
    char toto[30] = {0};
 
    int i = 0;
    while(*titre){
        toto[i] = *titre;
        titre++; i++;
    }
}
je trouve ce code identique, la seule difference est que ici, le char est declaré directement dans la methode et non dans la classe.


J'ai l'impression qu'un truc simple m'echappe! mais pourquoi donc ne puis je pas recuperer const char *titre dans le char V_titre ???