Bonjour à tous,
Retourner un tableau en paramètre d'une fonction c'est pas sorcier et pourtant... !!

Voila, j'ai un main principal où je lance:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
start_timer(Delta, (void*)maFonction_A, &MesInfo);
Cette fonction exécute maFonction_A toutes les 100ms et prend en paramètre MesInfo qui est une structure.

La Fonction_A fait elle appel à :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
void *maFonction_A(void * MesInfo)
{
 maFonction_B(Disobs_Obs_File, &obs_string, obs, (s_thread*)MesInfo);
}
Maintenant j'ai besoin de récupérer le tableau obs dans maFonction_A mais pas moyen les valeur du tableau sont les bonnes dans la mafonction_B mais pas dans maFonction_A.

-----------Mon Code----------
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
40
41
42
43
44
/*main function*/
int main(
    int argc,
    char *argv[])
{
    double delta = 100.0;
    s_thread MesInfo;
 
    start_timer(Delta, (void*)maFonction_A, &MesInfo);
    return 0;
}
 
/* maFonction_A function */
void *maFonction_A (void * MesInfo)
{
    long obs[510];
    FILE * Disobs_Obs_File = NULL;
    char obs_string;
 
    maFonction_B(Disobs_Obs_File, &obs_string, obs, (s_thread*)MesInfo);
 
 
    for (i = 0; i <((s_thread*)MesInfo)->obs_nbr; i++)
    {
        printf("OBS Removed  [%d] = %ld\n", i, obs[i]);
    }
 
    return 0;
}
 
 
/* maFonction_B qui rempli un tableau obs[] */
 
void maFonction_B(FILE *Disobs_Obs_File, char *obs_string, long *obs,
                  s_thread *MesInfo)
{
    obs = malloc(510 * sizeof(long));
 
    for (i=0; i<MesInfo->obs_nbr; i++)
    {
        obs[i] = /*fonction de recuperation d'un index de type long*/
            printf("OBS Upload->  OBS[%d] = %ld\n", i, obs[i]);
    }
}
Voici ce que j'obtiens en sorti :

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
/*
obs[0] =  : 77
obs[1] =  : 78
obs[2] =  : 79
obs[3] =  : 80
obs[4] =  : 81
obs[5] =  : 82
obs[6] =  : 83
obs[7] =  : 84
obs[8] =  : 85
obs[9] =  : 86
obs[10] =  : 87
obs[11] =  : 88
obs[12] =  : 89
OBS Removed  [0] = 0
OBS Removed  [1] = 0
OBS Removed  [2] = 0
OBS Removed  [3] = 0
OBS Removed  [4] = 0
OBS Removed  [5] = 0
OBS Removed  [6] = 0
OBS Removed  [7] = 0
OBS Removed  [8] = 0
OBS Removed  [9] = 0
OBS Removed  [10] = 0
OBS Removed  [11] = 0
OBS Removed  [12] = 0
*/
Alors que je souhaite obtenir les mêmes valeurs pour obs[i] = OBS Removed[i]
obs[1] = : 78
OBS Removed [1] = 0 et non pas "78" !!

Merci d'avance pour votre aide !