Variable globale en C++

skazat Messages postés 3 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 26 janvier 2008 - 12 janv. 2008 à 18:26
skazat Messages postés 3 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 26 janvier 2008 - 26 janv. 2008 à 20:32
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
13 janv. 2008 à 19:05
Montre le code en question.
0
cs_Klephte Messages postés 22 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 4 janvier 2022
15 janv. 2008 à 03:10
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).
0
skazat Messages postés 3 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 26 janvier 2008
15 janv. 2008 à 13:47
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
0
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
16 janv. 2008 à 23:32
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 ...!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
skazat Messages postés 3 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 26 janvier 2008
26 janv. 2008 à 20:32
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
0
Rejoignez-nous