Variable globale en C++

Signaler
Messages postés
3
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
26 janvier 2008
-
Messages postés
3
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
26 janvier 2008
-
Bonjour,
Cette question est tres urgente

Je dois creer un pgm d'apprentissage pour enfant (projet universitaire). Le code est tres lourd donc je ne le post pas.
J'ai un probleme au niveau de mon flux de donnee.

J'ai cree des structures de donnee

struct DATA
{
   int size_file;
   char **English;
   char **French;
};

toutes mes fonctions marche separement mais j'ai un probleme, au moment de les assembler.

En premier, je declare mes tableau en variables globales dans un .h
Je definie une fonction precompilateur GLOBAL et j'indique que les variables declarees sont extern. (comme indique dans l'aide microsoft pour la declaration d'une variable globale en C++)

Dans une premier fonction, je cree mes different tableaux et ensuite j'assigne les valeurs, luent dans un fichier .txt.

Ensuite j'essai de relire ces meme tableaux dans une autre fonction mais les valeurs assignees ont disparu.

J'affiche sur une console mes different resultat. Donc, dans la premier fonction les donnees sont correctes (je retrouve les info du fichier text), Mais dans l'autre fonction j'affiche des barre ou autre symbole qui n'ont rien avoir avec mon initialisation.

5 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Montre le code en question.
Messages postés
21
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
7 octobre 2011

Tes variables sont sans doute allouées sur le heap ce qui explique qu'elles n'existent pas en dehors de la fonction les ayant initialisées.
Vu la tête de ta structure, les variables English et French devraient pointer vers des zones mémoires que tu devrais allouer dynamiquement (malloc), tu pourras ensuite y écrire (snprintf) et retrouver tes petits depuis l'autre fonction grace à ces deux pointeurs.
Biensur tu n'oublieras pas de faire en ménage en partant (free).
Messages postés
3
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
26 janvier 2008

J'ai teste et ca ne fonctionne toujour pas. j'ai donc choisi de changer de technique et de lire le fichier a chaque demande. C'est tres empirique.


Merci a tous
Messages postés
416
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
2
Salut tout le monde,

Klephte-> allocation sur le heap(tas) donc visible par tous : malloc c'est ca qu'il fait
je suis d'accord avec luhtor: Montre nous ton code des 2 functions ainsi que les headers relatifs

je suis heureux de faire partie d'une grande famille ...!
Messages postés
3
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
26 janvier 2008

J'ai trouvé une autre solution je declare le fichier en C et je le declare comme fichier C dans le compilateur qui le traduit ensuite en fichier CPP.

Merci a tous