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:
avec signal_Array un pointeur vers un tableau de double.
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; }
ensuite, dans une classe exterieure, je créé un pointeur sur une 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 courbeSinus = new Sinusoide();
il me sort une erreur dans ce style:
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(); }
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...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 n'arrive donc pas à voir ou se situe mon erreur...
Pourriez vous m'aider ???
Merci,
Sebpsi
Partager