Bonjour,
J'utilise Qt 3.3.4 sous linux.
J'ai codé un petit programme :
Ce programme devrait :
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 #include <qglobal.h> #include <qvaluelist.h> class test { public : void essai() { QValueList <int>list; for(int i=0;i<1000000;i++) list.append(i); qDebug("entreLes2"); sleep(5); for(int i=0;i<1000000;i++) list.append(i); sleep(5); list.clear(); } }; int main() { qDebug("avant"); test toto; toto.essai(); qDebug("apres"); sleep(100); return 0; }
1 - afficher "avant"
2 - créer l'objet toto
3 - créer une QValueList
4 - ajouter à cette dernière 1000000 valeurs et faire monter en conséquence la mémoire VmSize
5 - afficher "entre les deux"
6 - ajouter à la même liste 1000000 valeurs et faire monter en conséquence la mémoire VmSize
7 - effacer tous les éléments de la liste et libérer la mémoire VmSize en conséquence
8 - détruire l'objet QValueList
9 - afficher "apres"
10 - attendre 100 secondes
11 - détruire l'objet toto
Malheureusement, ni à l'étape 7, ni à l'étape 8, la mémoire VmSize n'est libérée.
La mémoire n'est libérée qu'à l'étape 11.
Avez-vous une idée ?
Merci par avance.
Partager