PunkDude424
Messages postés117Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention24 avril 2006
-
21 déc. 2004 à 20:53
minet03
Messages postés415Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 2 décembre 2005
-
22 déc. 2004 à 23:06
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 ????
garslouche
Messages postés583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 20151 22 déc. 2004 à 10:54
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