Bonjour,

J'ai un doute sur la méthode de libération mémoire d'objets.

Dans 1 fonction, je transforme une image de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
void fonction()
{
  QImage img=label->pixmap()->toImage();
  ....
  traitement
  ....
  label->setPixmap(QPixmap::fromImage(img));
}
A la fin de ma fonction, normalement ma variable img est détruite.

Si je teste le code ci-dessous, cela ne compile pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
void fonction()
{
QImage *img;
 
  img=new QImage();
  img=label->pixmap()->toImage();
  ....
  traitement
  ....
  label->setPixmap(QPixmap::fromImage(img));
 delete img;
}
Pardonnez mes doutes,mes amalgames, mes confusions , je suis pas programmeur professionnel.

Sur ce point la gestion mémoire est importante, car le QImage peut contenir une valeur importante de donnés, donc si j’appelle plusieurs fois la fonction ....

D'après les tests effectués, l'espace mémoire occupé par l'application augmente lors du 1er appel à la fonction, ne diminue pas, mais n'augmente pas lors du second appel à la fonction.