Bonjour,
Je programmais depuis longtemps en Delphi et je suis contraint de passer à C++.
Je cherche donc à "retrouver" comment faire en C++ des choses que je savais faire avant
Je voudrais transmettre un objet créé dans le thread principal à un thread chargé de le traiter puis de le libérer.
Le thread principal peut en effet recevoir d'autres images à traiter et doit pouvoir les mettre en file d'attente sans se préoccuper du thread de traitement...
Dans ma routine de test (très basique) je constate que le "pointeur" vers l'objet libéré n'est pas remis à nullptr et je crains donc que l'objet dynamique ne soit libéré deux fois !!!!
J'ai essayé sans succès plein de combinaisons & et *...
L'appelant
L'appellé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 QImage *SavPict = new QImage; // SavPict est initialisé plus loin dans le code processImage(SavPict) if (SavPict != nullptr) { qDebug() << "SavPict non null" }
Avant d'aller plus loin, je voudrais m'assurer que je ne vais pas rencontrer des fuites mémoires et des erreurs aléatoires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void MyPgm::processImage(QImage *&clip) { // traitement de l'image delete &clip; }
Merci d'avance
Partager