Désallocation mémoire!!!

PunkDude424 Messages postés 117 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 24 avril 2006 - 21 déc. 2004 à 20:53
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Derniè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 ????

Merci

4 réponses

minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
22 déc. 2004 à 10:47
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
0
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
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
0
PunkDude424 Messages postés 117 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 24 avril 2006
22 déc. 2004 à 19:51
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....
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
22 déc. 2004 à 23:06
stock ton random dans une variable !

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