Une fuite de mémoire , c'est quand un programme entraîne une consommation supplémentaire mais constante de la mémoire , ce qui provoque le programme à utiliser plus de mémoire qu'il n'en a besoin . Au mieux, le programme va simplement utiliser plus de mémoire et ralentir l'ordinateur . Les cas extrêmes vont utiliser une mémoire suffisante pour causer d'autres programmes à se crasher à cause d'un manque de mémoire disponible, le pire des cas, il va se planter votre système d'exploitation. En C + + , les fuites de mémoire peut être causée par plusieurs erreurs de codage différents . Ce qui suit va vous montrer comment vérifier pour voir si votre programme a une fuite de mémoire et où le trouver . Instructions 1 Découvrez si votre programme a une fuite de mémoire. Exécutez votre programme à travers le débogueur en tapant: « _CrtDumpMemoryLeaks () ' La première ligne de code sera lu" fuites de mémoire détecté! " Si non, alors le programme ne dispose pas d'une fuite de mémoire . 2 Retrouvez l'emplacement de la fuite de mémoire. La troisième ligne de ' _CrtDumpMemoryLeaks ()' utilisé avec l'énoncé suivant: ' # define _CRTDBG_MAP_ALLOC ' vous indiquera le nom de l' déposer où la fuite de mémoire a été allouée. Vous pouvez également utiliser MFC pour suivre les allocations de mémoire. Dans MFC la macro: . ' DEBUG_NEW ' peut être utilisé pour suivre les fuites de mémoire 3 Aller vers le fichier indiqué . Les mauvais codage devront être localisé. Il existe plusieurs causes d'une fuite de mémoire , un mauvais usage des nouvelles /delete , une suppression égaré , pointeurs «perdus» ou un pointeur est hors de portée . Consultez les lignes de code où la mémoire est allouée et corriger les problèmes . Vérifiez si la mémoire allouée à une boucle est libérée à chaque itération . Assurez-vous de pointeurs ne peuvent pas aller hors de portée avant que la mémoire est libérée. Vérifiez aussi que les codes : ' malloc ' / 'libre' «nouvelle» /«supprimer» ' new [] ' /delete [] '< br > sont utilisés correctement 4 exécuter votre programme à travers le débogueur à nouveau en tapant: . _CrtDumpMemoryLeaks () ' pour voir si le problème persiste.
|