Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
755 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  String et fuites mémoires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

String et fuites mémoires

n°362658
deltaden
Posté le 16-04-2003 à 03:55:37  profilanswer
 

salut,
bon, il doit y avoir un truc que je comprends pas ou qui foire:
 
j'avais un problème de fuite mémoire (je teste avec bcheck sous Unix), et j'ai refais un bête programme pour tester ca:

Code :
  1. string s = "arhgggg";
  2. cout << s << endl;
  3. s = "test";
  4. cout << s << endl;


Bon, ce truc me fait une fuite mémoire de 1280Bytes!
Il me semblait quand même, qu'utilisé comme ca, c'était la STL qui gérait l'allocation, et qu'il y avait pas de problème.  
J'ai quand même retesté avec des pointeurs et des new/delete, et ca semble faire la même chose.  
Donc, soit il y a un problème quelque part, soit c'est le prog bcheck qui foire...
 
Après plus de tests, si je fais:

Code :
  1. string s = "arhgggg";
  2. cout << s << endl;
  3. s = "test";
  4. cout << s << endl;
  5. string s2 = "arhgggg";
  6. cout << s2 << endl;
  7. s2 = "test";
  8. cout << s2 << endl;


ca fait toujours une seule fuite mémoire de 1280B
 
Quelqu'un a une idée sur l'origine de ce problème ?


Message édité par deltaden le 16-04-2003 à 04:01:44

---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
mood
Publicité
Posté le 16-04-2003 à 03:55:37  profilanswer
 

n°362660
deltaden
Posté le 16-04-2003 à 04:09:49  profilanswer
 

j'ai refais des tests, et si à la place de mon premier string "arghhh" je met un truc plus long (de plus de 1200 caractères), alors la fuite mémoire est plus grande.
 
Ce serait une zone mémoire allouée par la STL pour y mettre tous les string ou quoi ? Mais pourquoi bcheck voit ca comme une fuite mémoire ? (d'un autre coté, je sais pas trop comment marche ce programme)
 
j'ai fait des recherches sur ce forum et sur Google, mais j'ai rien trouvé à ce sujet (bon d'accord, j'ai pas été voir tous les sites que google m'a trouvé :whistle: ...)


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
n°362894
theshockwa​ve
I work at a firm named Koslow
Posté le 16-04-2003 à 10:51:12  profilanswer
 

:heink: Normalement, sur les strings statiques, il n'y a pas d'allocation ...
 
Il me semble qu'elles toutes regroupées dans un endroit du segment de code ... (je ne suis pas trop sur, il faudrait l'avis d'un spécialiste) mais en aucun cas une string aussi statique que ca ne peut causer de fuite mem ... à moins de l'affecter à un char * sur lequel on a fait un malloc/calloc ou un new ...


---------------
last.fm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  String et fuites mémoires

 

Sujets relatifs
Pb cin >> string HELP c urgent...[C] un Count sur une string
URL -> CGI -> Chaine de caractère -> En faire une String ?Convertir un String en TObject c possible ?
Comportement de ostream& operator<<(ostream&, basic_string)Couper un string avec des délimiteurs
[java] un petit pb entre String et Bytestring et replace tt les ocurence
strstr donne un pointeur, mais j'aimerai un(e) string =)[C]condition string qui marche pas !
Plus de sujets relatifs à : String et fuites mémoires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR