Bonjour,
J'ai essayé à plusieurs reprise de passer par adresse une structure contenant plusieurs tableaux de float sans succès depuis quelques temps et je ne comprends pas ce qui pose problème. Je dois surement faire une erreur quelque part.

Déclaration de la structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
struct measures {
       float density[MAX_MES_NBR_PER_FILTER];
       float position[MAX_MES_NBR_PER_FILTER];
       };
Appel de la fonction dans le main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
struct measures density_meas;
main()
{
...
read_data_from_filter_file(idx_filters, nbr_meas_per_filter, &density_meas);
}
Code de la fonction :
C'est au niveau scanf que je bloque, erreur donnée par le compilo:
In function 'read_data_from_filter_file'
256|error: request for member 'density' in something not a structure or union|
256|error: request for member 'position' in something not a structure or union|
||=== Build finished: 2 errors, 0 warnings ===|
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
 
void read_data_from_filter_file(int idx_filter, int nbr_meas_per_filter,
                               struct measures *data)
{
 
    FILE *current_filter;
    char current_file[35];
    int idx_values;
 
      sprintf(current_file,"Filter-%d.txt",idx_filter);
      current_filter = fopen(current_file,"r");
      if(current_filter != NULL)
      {
              fscanf(current_filter,"%f %f",&data.density, &data.position);
      }
      else
      {
          printf("Error %s data file cannot be read : %s\n",current_file,strerror(errno));
      }
}