Bonjour,

Voici mon programme:

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
 
 
int *estimationsX=0,*estimationsXY=0 [...];
 
[quelques initialisations]
 
/* initialisations */
if (Si) {
	estimationsX=(int*)malloc((n+1)*sizeof(int));
	estimationsXY=(int*)malloc((n+1)*(n+1)*sizeof(int));
}
 
[longue boucle utilisant entre autre les deux pointeurs précédents]
 
if (Si) {
	free(estimationsX);
	free(estimationsXY);
}
return;
J'ai laissé le if car le plantage vient peut-être de là (?!)

Tout marche bien jusqu'à trois lignes avant la fin: il accepte free(estimationsX) mais plante quasi-systématiquement sur free(estimationsXY).
J'ai un autre programme avec les même instructions d'initialisations/destructions (même le if (Si) {...} y est), qui lui fonctionne très bien..



Merci d'avance !
Benjamin.