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 : 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
}
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
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.