Bonjour à tous,
J'aimerais savoir si le code suivant produit des fuites mémoires:
Pour moi il en produit mais je ne sais pas comment adapter celà.
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 void CBase::DoSomeThing() { CString* pMyString; pMyString = new CString(); pMyString->Empty(); *pMyString = returnastring(); // store pMyString in a Vector that will be freed by CBase::~Dtor.. } CString CBase::returnastring() { CString justastring; justastring = "Kikoo Dvp"; return justastring; }
De même, pour la fonction "returnastring", est ce autorisé ce genre d'écriture?? je veux dire, retourner une variable locale et la stocker dans un vecteur qui sera utilisé bien après la mort de la fonction (et donc du destructeur de la cstring locale?)?
Je dois pas être super bien réveillé, j'ai vraiment du mal avec cette partie..
S'il faut des précisions, n'hésitez pas
François
Partager