Bonjour � tous,
Lorsque je run mon programme, voici les erreurs qui me sont retourn� :
<gras>
File:f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c
Expression : _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
File:f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c
_CrtIsValidHeapPointer(pUserData</gras>)
J'ai chercher sur internet, c'est un probl�me de d�bordement de m�moire, ou autre, mais je ne vois pas d'erreur dans mon programme.
En supprimant les lignes dans mon main, j'ai pu remarqu� que je n'avais pas d'erreur si je supprimais la ligne ci-dessous(marqu� en commentaire).
J'ai donc cru que le probl�me venait du Constructeur/destructeur de Contenu. Sauf que je l'ai tester la classe dans le main, et je n'avais pas de probl�me.
L'erreur ne pouvait donc venir que de la fonction creerSession, j'ai alors mit en commentaire la boucle for dans creerSession pour voir si le probl�me �tait la fct amie operator<< , mais le probl�me persistait.
Il ne reste donc plus que ses lignes ci :
Contenu contenu(aud,pre,obj,out,pl);
lContenu.insert(lContenu.end(),contenu);
Et je vois vraiment pas d'erreur.
MAIN :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 int main() { Organsime organsime("adresse","nom",630,420,"email"); Formation formation; organsime.affichage(); formation.creerSession(18,11,1988,"rue de la station"); Theme theme("Theme"); theme.afficherTheme(); formation.creerContenu("audience","prerequis","objectifs","outils","plan"); return 0; }
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Ma classe contenu : #ifndef CONTENU_H_INCLUDED #define CONTENU_H_INCLUDED #include "String.h" #include <iostream> using namespace std; class Contenu { private : char* audience; char* prerequis; char* objectifs; char* outils; char* plan; public : Contenu(const char*,const char*,const char*,const char*,const char*); void affichage(); char* getAudience()const ; char* getPrerequis()const ; char* getObjectif()const; char* getOutil()const; char* getPlan()const; inline ~Contenu() { delete[] this->audience ; delete[] this->prerequis; delete[] this->objectifs ; delete[] this->outils ; delete[] this->plan ; } }; #endif // CONTENU_H_INCLUDED
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 #include "Contenu.h" Contenu::Contenu(const char * aud,const char * pre,const char * obj,const char * out,const char * pl) { this->audience=new char[strlen(aud)+1]; strcpy(this->audience,aud); this->prerequis=new char[strlen(pre)+1]; strcpy(this->prerequis,pre); this->objectifs=new char[strlen(obj)+1]; strcpy(this->objectifs,obj); this->outils=new char[strlen(out)+1]; strcpy(this->outils,out); this->plan=new char[strlen(pl)+1]; strcpy(this->plan,pl); } char* Contenu::getAudience() const { return this->audience; } char* Contenu::getObjectif() const { return this->objectifs; } char* Contenu::getOutil() const { return this->outils; } char* Contenu::getPlan()const { return this->plan; } char* Contenu::getPrerequis()const { return this->prerequis; } void Contenu::affichage() { cout<< this->audience<<" "<<this->objectifs<<" "<<this->outils<<" "<<this->plan <<" "<<this->prerequis<<endl; }
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class Formation : public ElementCatalogue { private : list<Contenu> lContenu; list<Contenu>::iterator itContenu; public : void creerContenu(const char *,const char *,const char *,const char *,const char *) inline Formation(){} friend ostream &operator<<(ostream &,const Session &); };
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 void Formation::creerContenu(const char * aud ,const char * pre,const char * obj,const char * out,const char * pl ) { Contenu contenu(aud,pre,obj,out,pl); lContenu.insert(lContenu.end(),contenu); for (itContenu = lContenu.begin(); itContenu != lContenu.end() ; itContenu++) { cout << *itContenu ; } }
Partager