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 :
Appel de la fonction dans le main :
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]; };
Code de la fonction :
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); }
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)); } }
Partager