magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011
-
12 juil. 2004 à 10:50
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
13 juil. 2004 à 18:57
bonjour:
j'aimerai savoir quand les variables statics sont detruites... en fin d'appli (du main, winMain)? ou ailleurs...? à la derniere occurence?
avant, j'utilisais des variables static standard (int, bool)
et donc la question ne se posait pas
maintenant, j'ai utilisé des classes... (des BListeIndir pour ceux qui veulent savoir donc des listes à détruire absoluement pour éviter les memory leaks...)
f()
{
static Toto titi;
...
}
et est-ce la mm réponse si la variables static appartient à une classe.
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 13 juil. 2004 à 13:22
Merci.
En résumé, pour ceux qui veulent la réponse exacte:
l'OS désalloue la mem static allouée en début de prog en faisant appel aux destructeurs à la sortie du soft.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 12 juil. 2004 à 11:14
Bon j'ai essayé avec une variable static d'une classe créée avec un new, et elle n'est jamais détruite, c'est à toi de le faire.
J'imagine que pour les variables statiques du C c'est la même chose.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 12 juil. 2004 à 21:26
Une variable statique en fait ce n'est qu'une variable globale qui n'est visible que dans certains endroits, comme une fonction, un fichier...
Donc comme les variables globales, leur durée de vie est celle du programme.
Patience et longueur de temps font plus que force ni que rage....
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 13 juil. 2004 à 02:08
pour detruire une variable statique d'une classe correctement, maintiens un compteur statique du nombre d'objets de ta classe, et détruis ta variable statique qd ce compteur atteint 0.
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 13 juil. 2004 à 10:53
"Je V répéter la question en la spécifiant mieux:
Quand est-ce qu'elle est détruite automatiquement?
Si cela correspond à sa durée de vie, on dira à la sortie du prg..." -> ben oui; dire qu'elle atteint la fin de sa durée de vie, c'est pareil que de dire qu'elle est détruite...
Au début du prog l'OS te fait une place dans la RAM pour ta variable, et à la fin de son exécution le prog est déchargé de la RAM; ta variable n'existe plus.
vecchio56 >> magic_Nono nous parle pas de variables allouées sur le tas, donc on peut pas les détruire comme ça quand on veut.
Patience et longueur de temps font plus que force ni que rage....