A voir également:
- Out of memory
- Windows memory cleaner - Télécharger - Optimisation
- D'sub out of range - Forum Ecran
- Out of video memory trying to allocate a rendering resource ✓ - Forum Carte graphique
- Cmdl cache out of memory - Forum Carte-mère/mémoire
- Windows memory diagnostic - Télécharger - Optimisation
3 réponses
donne nous au moins la partie d'allocation de memoire de ton code et une petite explication sur ce que tu desire realiser
Tu a une fuite mémoire : tu fait plein de new, mais pas les delete qui vont avec !!!
(si tu fais des malloc(), là c'est fessé, mais il faudra mettre des free())
Attention c'est pas du Java !! Y'a pas de Gabarge Collector qui libére les objets non utilisé !
La régle c'est : un objet qui alloue de la mémoire dans le constructeur la libère dans le destructeur.
Si tu alloue de la mémoire dans une méthode (une fonction) il faut la libérer avant la sortie de la fonction.
Pareil, dans une boucle, avant de passer au cycle suivant.
Dans certain cas, tu est obligé de ruser, par exemple allouer de la mémoire dans une fonction mais la libérer que dans le constructeur etc... Mais ce sont des cas particuliers plus rares...
Fait bien attention à ça, remet toujours les pointeurs à NULL après le delete, ne MODIFIE JAMAIS un pointeur qui stocke le resultat d'un new, sauf APRES le delete (sinon, la mémoire pointée est irrémédiablement perdue).
(si tu fais des malloc(), là c'est fessé, mais il faudra mettre des free())
Attention c'est pas du Java !! Y'a pas de Gabarge Collector qui libére les objets non utilisé !
La régle c'est : un objet qui alloue de la mémoire dans le constructeur la libère dans le destructeur.
Si tu alloue de la mémoire dans une méthode (une fonction) il faut la libérer avant la sortie de la fonction.
Pareil, dans une boucle, avant de passer au cycle suivant.
Dans certain cas, tu est obligé de ruser, par exemple allouer de la mémoire dans une fonction mais la libérer que dans le constructeur etc... Mais ce sont des cas particuliers plus rares...
Fait bien attention à ça, remet toujours les pointeurs à NULL après le delete, ne MODIFIE JAMAIS un pointeur qui stocke le resultat d'un new, sauf APRES le delete (sinon, la mémoire pointée est irrémédiablement perdue).