Bonjour, je résoud une équation où mon inconnue est un vecteur à 26 composantes. A chaque itération, j'écrivais sur le disque dur toutes les composantes de mon vecteur. Maintenant, j'ai fait un petit "module" qui permet de n'écrire que quelques composantes de mon vecteur sur le disque dur (les numéros de ces composantes étant choisies par l'utilisateur). Depuis que j'ai fait ce module, j'ai un segmentation fault à la fin de mon prgm (bien que toutes mes données aient été écrites sur le disque dur) ! Si je fais

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
ici il y a le code 

/* destruction de la mémoire */
DestroyVector(&nbspeprinted);
  DestroyMechanism(&mec);
  DestroyEngine(&e);
  DestroyTemporary(&temp);
  DestroyVector(&esp_EGR);
  DestroyVector(&comp_EGR);
  DestroyIniData(&id);    
  DestroyRandIniCond(&ric);
  DestroyIniMass(&inimass);
  printf("toto\n");
  DestroyDistribution(&d);
  printf("toto\n");
  free(inputfile); inputfile=NULL;
tout se passe bien, aucune erreur. Si je fais

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
ici il y a le code 

/* destruction de la mémoire */
  DestroyMechanism(&mec);
  DestroyEngine(&e);
  DestroyTemporary(&temp);
  DestroyVector(&esp_EGR);
  DestroyVector(&comp_EGR);
  DestroyIniData(&id);    
  DestroyRandIniCond(&ric);
  DestroyIniMass(&inimass);
  printf("toto\n");
  DestroyDistribution(&d);
  printf("toto\n");
  free(inputfile); inputfile=NULL;
DestroyVector(&nbspeprinted);
ma sortie est

toto
Erreur de segmentation
et si je fais

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
ici il y a le code 

/* destruction de la mémoire */
  DestroyMechanism(&mec);
  DestroyEngine(&e);
  DestroyTemporary(&temp);
  DestroyVector(&esp_EGR);
  DestroyVector(&comp_EGR);
  DestroyIniData(&id);    
  DestroyRandIniCond(&ric);
  DestroyIniMass(&inimass);
DestroyVector(&nbspeprinted);
  printf("toto\n");
  DestroyDistribution(&d);
  printf("toto\n");
  free(inputfile); inputfile=NULL;
ma sortie est

toto
*** glibc detected *** double free or corruption (fasttop): 0x000000000059d800 ***
Abandon
et là où je suis trop énervé, c'est que ma version multi-thread marche très bien. En revanche, ma version séquentielle plante ! D'où pourrait provenir l'erreur ?