Modifier structure dans une fonction

Résolu/Fermé
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 - 11 mars 2010 à 09:40
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 - 11 mars 2010 à 11:23
Bonjour,
Bon je suis toujours autant une buse en C et j'ai besoin de votre aide !
J'ai plusieurs variables déclarée en globales (enfin déclarée au tout début donc je suppose en globale ?)

char *baseDepart=NULL, *tableDepart=NULL, *delai=NULL, *ancienneteMini=NULL, *heure=NULL, *tempsSoulagement=NULL;

Dans mon main j'appelle une fonction :

loadParamArchivage(baseDepart,tableDepart,delai,ancienneteMini,heure,tempsSoulagement);

Voici la fonction :

int loadParamArchivage(char *baseDepart,char *tableDepart,char *delai,char *ancienneteMini,char *heure,char *tempsSoulagement) {
int status;
IniText IniFile;
char Directory[]="..\\fichiersINI\\Initialisation.ini";

IniFile = Ini_New (0);
status = Ini_ReadFromFile (IniFile, Directory);
if(status!=0) MessagePopup ("Lecture du fichier INI de paramétrage", " Impossible de lire le fichier INI");

Ini_GetPointerToRawString (IniFile, "ARCHIVAGE", "BaseASauvegarder", &baseDepart );
Ini_GetPointerToRawString (IniFile, "ARCHIVAGE", "TableASauvegarder", &tableDepart );
Ini_GetPointerToRawString (IniFile, "ARCHIVAGE", "NbJoursParBase", &delai );
Ini_GetPointerToRawString (IniFile, "ARCHIVAGE", "AncienneteDeSauvegarde", &ancienneteMini );
Ini_GetPointerToRawString (IniFile, "ARCHIVAGE", "HeureDeSauvegarde", &heure );
Ini_GetPointerToRawString (IniFile, "ARCHIVAGE", "TempoSoulagement", &tempsSoulagement );

Ini_Dispose (IniFile);
return 0;
}

J'aimerai que cette fonction modifie mes variables globales mais ce n'est pas le cas :/
La fonction Ini_GetPointerToRawString lis dans le fichier ini la valeur voulue.

J'arrive si je veux à afficher baseDepart dans ma fonction, mais la valeur n'est pas gardée quand je sort de ma fonction. Aidez moi svp !!!!!
Merci
A voir également:

3 réponses

Bonjour,
Si tu souhaites modifier les variables globales, je ne vois pas l'intérêt de les passer en paramètre de ta fonction.
Il suffit de définir ta fonction sans paramètres pour que cela fonctionne.

Ici, tes variables globales ont le même nom que les variables locales (paramètres de ta fonction).
Ce qui n'est pas bien, car confus ;
Quand tu utilise 'baseDepart' à l'intérieur de loadParamArchivage, ce n'est pas la variable globale qui est utilisée, mais la locale (dont la portée est limitée à la fonction).

Cordialement,
M.
0
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
11 mars 2010 à 10:40
Merci, j'ai essayé de supprimer les paramètres de ma fonction. Mais je continue a voir le même problème, lors de son appel ma fonction de modifie pas les variables globales.

Si je demande d'afficher mes variables à la fin de ma fonction, ça fonctionne, mais si je veux les afficher dans le main après son exécution, cela ne marche pas !
0
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
11 mars 2010 à 11:23
Résolu, mon soucis venait de la fonction Ini_Dispose (IniFile); qui vidait mes variables.
Merci !
0