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