
Envoyé par
r0d
Pourquoi ne pas aller jusqu'au bout, et faire plutôt: Sandwich::Sandwich(float hauteur_prod,float prix_prod,const string & chaine)?
Merci de votre aide à tous !! J'ai reussi en string, mais j'ai deux autres questions :
voilà ce que m'affiche valgrind :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| ==3310== HEAP SUMMARY:
==3310== in use at exit: 46 bytes in 2 blocks
==3310== total heap usage: 7 allocs, 5 frees, 126 bytes allocated
==3310==
==3310== 46 bytes in 2 blocks are definitely lost in loss record 1 of 1
==3310== at 0x402B9B4: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==3310== by 0x40D57D3: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16)
==3310== by 0x40D7A47: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16)
==3310== by 0x40D7BB5: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16)
==3310== by 0x41614D2: (below main) (libc-start.c:226)
==3310==
==3310== LEAK SUMMARY:
==3310== definitely lost: 46 bytes in 2 blocks
==3310== indirectly lost: 0 bytes in 0 blocks
==3310== possibly lost: 0 bytes in 0 blocks
==3310== still reachable: 0 bytes in 0 blocks
==3310== suppressed: 0 bytes in 0 blocks
==3310==
==3310== For counts of detected and suppressed errors, rerun with: -v
==3310== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) |
1) Les deux pertes sont du à mes deux objets qui utilisent des variables membres string. Et donc, pour la classe string pour éviter les fuites mémoires je dois appeler le destructeur de la classe string ? Mais à priori je n'ai pas de pointeur ici ... donc je peux pas faire de delete
2) La 2ème erreur (ERROR SUMMARY) vient de cette ligne :
cout << "date limite de consommation : " << date_lim_conso << "\n" ;
, avez vous une idée ?
Partager