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:
et voici la fonction appelé
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
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 }
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.
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
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); }
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.
Partager