Salut à tous

j'ai un petit souci, qui me parait etre du à la manière dont j'ai déclaré une variable globale qui doit etre accessible dans tout le code source :
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
18
19
20
21
22
23
24
25
26
27
28
29
entete.h
     #include "uneclasse.h"
     extern uneClasse instance_globale;
 
uneclasse.h:
     class uneClasse
     {
     public:
          uneClasse();
          char* chaine_membre;
     };
 
uneclasse.cc
     #include "uneclasse.h"
     #include "entete.h"
     uneClasse instance_globale;
 
     uneClasse::uneClasse()
     {
          ...
          cout << "local : " << chaine_membre << endl;
     }
 
fichier_quelconque.cc
     #include "entete.h"
     void fonction ()
     {
          cout << "global : " << instance_globale.chaine_membre << endl;
     }
J'obtiens contre toute attente la sortie suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
local : /usr/lib/ladspa
global : ale/fr/LC_CTYPE
La chaine locale est celle à laquelle je m'attendais mais je ne comprend pas d'ou sors la chaine globale.

Quelqu'un à une idée ?

Edit : j'ai remplacé la chaine de style c avec une std::string et maintenant ça marche. j'ai pas compris mais tant pis

Rémi