Modification d'une strucutre depuis une fonction
Bonjour à tous,
Je suis ici car j'ai besoin de modifier une structure depuis une fonction, j'arrive a envoyer l'adresse de ma structure a ma fonction a modifier cette structure dans la fonction, par contre lorsque j'affiche ma structure dans mon main j'obtiens un résultat que je ne comprend pas.
Voici mon main:
Code:
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 30 31 32 33 34 35 36 37 38
|
#include <stdio.h>
#include <stdlib.h>
#include "structures.h"
#include "bibli.h"
//Emplacement du fichier de config. (Adresse absolue)
#define EMPLACEMENT_CONFIG "/home/moi/Bureau/fichierConfig/config.txt"
int main()
{
int i=0;
FILE* config = NULL;
StructAdresse adresseLu;
//Ouverture du fichier de configuration pour tester l'adresse entré dans emplacement
config = fopen(EMPLACEMENT_CONFIG, "r");
if (config == NULL){
printf("Erreur à l'ouverture du fichier de config\n\n");
exit(EXIT_FAILURE);
}
fclose(config);
//Lecture de l'adresse contenue dans le fichier de configuration
lectureConfig(EMPLACEMENT_CONFIG, &adresseLu);
printf("\n\tMAIN.C\n");
printf("Adresse lu NOM : %s\n",adresseLu.nom);
printf("Adresse lu num noeud : %s\n",adresseLu.num_Noeud);
printf("Adresse lu adresse mac : %s\n",adresseLu.adresse_Mac);
printf("Adresse lu adresse ip : %s\n",adresseLu.adresse_IP);
printf("Adresse lu num udp : %s\n",adresseLu.num_UDP);
printf("Adresse lu adresse buffer : %p\n\n",adresseLu.adresse_buffer);
return 0
} |
et voici la fonction appelé
Code:
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 30 31 32 33 34 35 36 37 38 39
|
void lectureConfig (char* emplacement, StructAdresse *adresseLu)
{
FILE* config = NULL;
config = fopen(emplacement, "r");
if (config == NULL){
printf("Erreur à l'ouverture du fichier de config");
exit(EXIT_FAILURE);
}
//Création des variables de réception des information contenue dans le fichier de config
char nom[30];
char num_Noeud[30];
char adresse_Mac[30];
char adresse_IP[30];
char num_UDP[30];
void* adresse_buffer;
//Lecture du contenue du fichier config
fscanf(config,"%s %s %s %s %s %p",nom,num_Noeud,adresse_Mac,adresse_IP,num_UDP,&adresse_buffer);
//Mise à jour du carnet d'adresse interne
adresseLu->nom = nom;
adresseLu->num_Noeud = num_Noeud;
adresseLu->adresse_Mac = adresse_Mac;
adresseLu->adresse_IP = adresse_IP;
adresseLu->num_UDP = num_UDP;
adresseLu->adresse_buffer = adresse_buffer;
printf("\n\tBIBLI.C\n");
printf("Adresse à Temp NOM : %s\n",adresseLu->nom);
printf("Adresse à Temp num noeud : %s\n",adresseLu->num_Noeud);
printf("Adresse à Temp adresse mac : %s\n",adresseLu->adresse_Mac);
printf("Adresse à Temp adresse ip : %s\n",adresseLu->adresse_IP);
printf("Adresse à Temp num udp : %s\n",adresseLu->num_UDP);
printf("Adresse à Temp adresse buffer : %p\n\n",adresseLu->adresse_buffer);
fclose(config);
} |
Lorsque j'affiche ma structure depuis Bibli.c j'obtiens bien le contenue de mon fichier config, par contre lorsque j'affiche le contenue de ma structure depuis le main je n'obtient plus la même choses.
Je me demande donc d'où viens mon erreur. Car malgré mes nombreuses recherches je n'ai pas réussi à trouver la solution à mon problème. :(
Merci pour vos pistes et votre aide.