A hukommelsesfejl er, når et program forårsager en trinvis , men støt forbrug af hukommelse, hvilket programmet til at bruge mere hukommelse end den har brug for . I bedste vil programmet blot bruge mere hukommelse og sinke computeren . Ekstreme tilfælde vil anvende nok hukommelse til at forårsage andre programmer til at gå ned på grund af manglende tilgængelig hukommelse , worst case scenario vil det gå ned dit OS . I C + + kan memory leaks være forårsaget af flere forskellige fejl i kodning. Følgende vil vise dig hvordan du kontrollere, om dit program har en hukommelse læk og hvor man kan finde det. Instruktioner
1
Find ud af om dit program har en hukommelsesfejl . Kør dit program gennem debugger ved at skrive : Hej
' _CrtDumpMemoryLeaks () '
Den første linje kode vil læse " Opdagede hukommelseslækager! " Hvis ikke, så programmet ikke har en hukommelsesfejl .
2
Track ned placeringen af memory leak . Den tredje linje
' _CrtDumpMemoryLeaks ( ) »
bruges med erklæringen : Hej
' # define _CRTDBG_MAP_ALLOC '
vil fortælle dig navnet på den fil, hvor den lækkede hukommelsen blev afsat . Du kan også bruge MFC til at spore hukommelse tildelinger . I MFC makro : .
' Debug_new '
kan bruges til at spore hukommelseslækager
3
Gå til filen angivet. De dårlige kodning skal placeret. Der er flere årsager til en hukommelsesfejl , forkert brug af nye /delete, en malplaceret slette, "Lost" pointere eller en pointer går ud af rækkevidde. Kontrollér linjer kode , hvor hukommelsen er allokeret, og rette eventuelle problemer . Tjek om allokeret hukommelse i en løkke er udgivet i hver iteration . Sørg for at du pointere kan ikke gå uden for rækkevidde , før hukommelsen er frigivet. Kontroller også, at koder:
' malloc ' /' gratis'
' ny ' /' delete '
' nye [ ] ' /delete [ ] '< br >
anvendes korrekt
4
Kør dit program gennem debugger igen ved at skrive: .
' _CrtDumpMemoryLeaks () '
at se, om problemet stadig forekommer.