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
| bool Usine::ajouterForme(const string& chaine, Forme* ptrF)
{
Forme* ptrF2;
/* la fonction dupliquer() fait, au minimum, un new ;) */
ptrF2=new Form(ptrF);
map<string, Forme*>::iterator it;
it= mymap.find(chaine);
if( it==mymap.end() )
{
/* pas de problème : mymap se charge de garder l'adresse
* pointée par ptrF2
*/
mymap.insert(pair<string, Forme*>(chaine,ptrF2));
return(1);
}
else
{
/* Ouuupsss... on perd toute référence à l'adresse pointée
* par ptrF2...
*
* Et on ne l'a pas libérée !!!!
* On fait cela trois millions de fois, et on explose le système
* :D
*/
return(0);
}
} |