melkiorlenecrarque
Messages postés97Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention20 janvier 2008
-
6 mars 2005 à 11:58
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 2006
-
7 mars 2005 à 21:09
Salut
Quelqu'un pourait m'ecrire une fonction qui renvoie un tableau[12] ?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 6 mars 2005 à 17:01
Lorsque le processus se termine, oui, mais ca ne concerne que la
libération de la mémoire, si ton objet ouvre des fichiers, des
connexions réseaux ou autres il vaut mieux ne pas oublier le delete .
Et comme tu n'est pas censé connaitre l'implémentation de l'objet (en
général), il ne faut jamais oublier delete en C++, alors qu'en C on
pourrait se passer de free dans ce cas la.
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 7 mars 2005 à 19:01
NitRic, exact, de nombreux système désalloue la
mémoire allouée au programme, mais ce n'est pas un comportement
standard, donc toujours faire free et delete (mais garder en tete que
oublier un free peut etre vu comme une erreur mineure alors que pour un
delete cela peut avoir de grave consequences).
Arnaud16022, pour quitter un programme
lorsque qu'une erreur survien, il vaut mieux utiliser une exception
plutot qu'une fonction qui invoque exit() (ou autre fonctions qui
quittent le programme sans remonté de blocs)
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 7 mars 2005 à 20:18
Imagine un serveur ou tout autre programme qui reste open durant des jours et des jours, imagine des oublies(tel, libération de mémoire, etc ...) Conséquence? Tu alloue, alloue, alloue, ... sans free/delete => Fuite De Mémoire => Le système en as plein les bras après un certain temps => Manque de mémoire à prévoir => etc ...
UN malloc/realloc/calloc => UN free
UN new => UN delete
Il n'est aucunement question d'en oublier, c'est => Obligatoire!!!
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 7 mars 2005 à 21:09
Je pense que tout le monde à compris ca quand meme !
On parle de la libération de pointeur qui n'a pas lieu d'etre liberé
pendant l'éxecution (et qu'on libère donc en fin de programme), comme
beaucoup de systèmes libèrent la mémoire allouée à un processus
lorsqu'il se termine, c'est transparent. Si dans ce cas il vaut mieux
ne pas oublier de liberer la mémoire c'est uniquemenet parce que
certains sytèmes ne le font pas.