Désallocation mémoire!!!

Signaler
Messages postés
117
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
24 avril 2006
-
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
Mon problème est le suivant:

J'avais un semblant de screen saver en Java qui affichais des etoile a chaque temps X et d'une durée Y ....la structure de mon programme était une classe CFenetre qui affichais une fenetre et fesais une grille de 30 par 30 JLabel (des static)....jenvoyais cette grille a une classe CCreeEtoile qui elle choisisais avec un random un JLabel et fesais un new CEtoile qui elle partais un thread qui affiche létoile ...fais un sleep dune duré de X et effacais létoile.....
mon probleme est que en Java il ny a pas de delete....donc quand je fais des new CEtoile....apres un certain temps le Garbage collector passe et les "delete"....mais maintenant je veux le faire en C++....j'ai faite la meme structure de programme....mais quand je fais des new CEtoile.....ben en c++ il faut que je les delete un moment donné....alors comment faire ???.....je ne sais pas quelle va etre la durée de létoile.....comment fiare pour désalloué la mémoire proprement??....y a til moyen de dire au thread par exemple quand ta fini delete toi toi meme ????

Merci
A voir également:

4 réponses

Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
3
delete pointeur;
si c'est pour une classe il faut rajouter autre chose mais je ne sais pas quoi. Donc renseigne toi sur cette fonction.

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Es-tu bien sûr que tes etoiles etaient detruites ? Le garbage collector detruit les objets lorsque plus personne n'y fait reference, mais dans ton cas les references existent toujours, a moins que tu ne les ai retirées a la main...

Quoiqu'il en soit le moment pour detruire les etoiles est simplement le moment où elles disparaissent... Tu as dis toi-même qu'apres Y secondes elles n'existent plus. Il suffit donc que ton CCreeEtoile supprime les etoiles qu'il a créé à la fin de la tempo. Il se peut que tu aies besoin de maintenir une liste de pointeurs des etoiles créées pour les detruire ensuite.

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
Messages postés
117
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
24 avril 2006

Le garbage collector passe car je nassigne pas de variable a mon objet...donc aucune variable ny fais référence...

je ne peut pas les delete dans CCreeEtoile car je ne sais pas apres combien de temps elle meurt.....c'est random....
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
3
stock ton random dans une variable !

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite