Bonsoir,
je débute en C. Dans le cadre d'un projet de programmation, j'ai créé une fonction qui enregistre des fichiers .out comme de gros vecteurs à fréquence régulière au cours d'un processus itératif.
J'ai quelques soucis car bien que je précise la taille de ce vecteur avant ma boucle (dans le code len=li*lj-1 + 4), or j'obtiens en pratique un vecteur plus court, ce qui est fâcheux car je dois visualiser les résultats via un autre logiciel. Lorsque je diminue la fréquence d'échantillonnage (ratio), le nombre de composantes augmente vers la bonne valeur.
Je n'ai rien trouver sur le net, je suppose que je fais une connerie avec le pointeur OUTPUT (je le libère/déclare mal ?), mais je ne mets pas le doigt dessus, auriez-vous des idées ?
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 void saveresults(double *vect, int li, int lj, double deltaL, double T,char filename[]) { /* v is a vector corresponding to eta, u or v */ /* i : each file correspond to a number */ /* li : number of diamond cells on vertical direction */ /* lj : number of diamond cells on horizontal direction */ /* lenv : number of components that have to be saved */ /* deltaL : spatial step */ /* deltaT : timestep */ /* filename - string of character */ int i = 0; /* integer used to iterate and asaving results */ int len = li*lj-1; FILE *OUTPUT = NULL; OUTPUT = fopen(filename, "w+"); fprintf(OUTPUT, "%d \n", li); fprintf(OUTPUT, "%d \n", lj); fprintf(OUTPUT, "%lf \n", T); fprintf(OUTPUT, "%lf \n", deltaL); for (i = 0; i <= len; i++){ fprintf(OUTPUT, "%lf \n", vect[i]); } close(filename); free(OUTPUT); }
Merci d'avance
Partager