Bonsoir a tous,

je viens car j'ai un petit probleme de destruction de pointeurs...

Alors, voila, je vous explique:

Je créé des pointeurs sur des objets que j'ai créé. Voici un exemple, les autres sont tous basés sur le meme modele:

J'ai une classe Sinusoide qui dérive d'une classe Signal:

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
Signal::Signal(){
 
	amplitude = 0.00;
	frequence = 0.00;
	offset = 0.00;
	dephasage = 0;
	signal_Array = new double[466];
	for(int i=0; i<=466; i++){
		signal_Array[i] = 0;
	}
}
 
Signal::~Signal(void){
	delete[] signal_Array;
}
avec signal_Array un pointeur vers un tableau de double.

ensuite, dans une classe exterieure, je créé un pointeur sur une Sinusoide:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
courbeSinus = new Sinusoide();
Je fais tous mes traitements sans aucuns souci, mais lorsque je fais le delete sur le pointeur de Sinusoide, donc j'appelle le delete de la classe Signal:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
void CFIRSnakeDlg::OnBnClickedCancel()
{
	delete courbeSinus;
	delete courbeCarre;
	delete courbeTriangle;
	delete courbeBruit;
	delete courbeSignal;
	OnCancel();
}
il me sort une erreur dans ce style:
HEAP[FIR-Snake.exe]: Heap block at 0035BFE8 modified at 0035CEA4 past requested size of eb4
Windows a déclenché un point d'arrêt dans FIR-Snake.exe.

Cela peut être dû à une défaillance du tas et indique un bogue dans FIR-Snake.exe ou l'une des DLL chargées.

La fenêtre Sortie peut contenir des informations de diagnostic supplémentaires
Je ne vois pas d'ou peut venir mon erreur, sachant que lorsque je supprime le delete, la fenetre de déboguage me dit que j'ai oublié de "dumper" des objets, et que VS2005 l'a fait pour moi...

Je n'arrive donc pas à voir ou se situe mon erreur...
Pourriez vous m'aider ???

Merci,
Sebpsi