tibob51
Messages postés268Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention13 mai 2013
-
21 août 2005 à 15:39
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 2009
-
21 août 2005 à 17:16
Bonjour a tous,
Je voudrai savoir si lors de la fermeture d'un programme les objets créés dynamiquement doivent etre obligatoirement détruits,pour libérer la mémoire ou sont ils détruit automatiquement.
Merci de votre aide
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 21 août 2005 à 16:26
win32 et sup garantit la libération des ressources créées par un processus quand il est démappé de la mémoire.
Pour autant il faut garder l'habitude de coder proprement, à chaque alloc doit correspondre sa désalloc.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 août 2005 à 15:58
Ils le sont automatiquement, mais c'est plus joli si tu le fais toi
même. Surtout si ton processus a une durée de vie assez longue, les
fuites de mémoires vont poser un problème
Vous n’avez pas trouvé la réponse que vous recherchez ?
tibob51
Messages postés268Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention13 mai 20132 21 août 2005 à 16:40
Ok merci pour votre aide,mais je recontre aussi un problème avec un thread;je m'explique ce thread me sert dans une application via le net,pour faire l'écoute de nouveau client,le seul moyen que j'ai trouvé lorsque l'on quitte le programme c'est de forcer le thread a s'arréter mais normalement sa mémoire ne sera pas libérée;de plus (mais rien a voir) je voudrai savoir comment faire pour écouter les messages envoyés par les clients,car j'ai lu sur le site qu'il etait plutôt déconseillé de créer un thread par client,ùais plutot de faire un pour l'écoute un pour l'envoi ect.... le seul probléme est que recv est un fonction bloquante donc si le 1er client ne fait rien les autre ne pourront rien faire non plus...
Merci de m'aider pour ce sujet aussi
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 août 2005 à 16:53
Il faut juste que tu trouves un moyen pour que ton thread s'arrête lui
même, pour qu'il puisse libérer sa mémoire. Ca se fait facilement avec
une varaible booléenne globale
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 21 août 2005 à 17:15
N'utilise pas les sockets bloquantes :
-soit tu fais des sockets non-bloquantes avec ioctlsocket()
-soit tu utilises WSAAsyncSelect() ou WSAAsyncEvent()
Ca devrait suffire (bien qu'il existe des methodes encore plus avancées).
Pour toute question par rapport a ces fonctions, soit MSDN, soit tu telecharges network2.chm sur betouchi.free.fr (site de aardman).