|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur felsöka en minnesläcka i C + +

    En minnesläcka är när ett program orsakar en stegvis men stadig konsumtion av minnet , vilket gör att programmet för att använda mer minne än den behöver . I bästa programmet kommer helt enkelt använda mer minne och datorn långsam . Extrema fall kommer att använda tillräckligt med minne för att orsaka andra program att krascha på grund av brist på tillgängligt minne , värsta fall kommer det att krascha ditt OS . I C + + , kan minnesläckor kan orsakas av flera olika fel i kodning . Följande kommer att visa dig hur du kontrollerar att se om ditt program har en minnesläcka och var den finns . Instruktioner
    1

    Ta reda på om ditt program har en minnesläcka . Kör programmet genom debugger genom att skriva:

    " _CrtDumpMemoryLeaks ( )

    Den första raden i koden kommer att läsa " Upptäckta Minnesläckor ! " Om inte , då programmet inte har en minnesläcka .
    2

    spåra placeringen av minnesläcka . Den tredje raden i

    " _CrtDumpMemoryLeaks ( ) '

    används med uttalandet :

    " # define _CRTDBG_MAP_ALLOC '

    kommer att berätta namnet på den filen där läckt minne tilldelades . Du kan också använda MFC att spåra minnesallokeringar . I MFC makrot : .

    ' Debug_new '

    kan användas för att spåra minnesläckor
    3

    Gå till filen anges . De dåliga kodning måste lokaliseras . Det finns flera orsaker till en minnesläcka , felaktig användning av ny /delete , en felplacerad delete , "Lost" pekare eller en pekare går ur räckvidd . Kontrollera kodrader där minne allokeras och åtgärda eventuella problem . Kontrollera om tilldelade minnet i en slinga släpps i varje iteration . Se till att du pekare inte kan gå ut ur räckvidd innan minnet frigörs . Kontrollera också att koderna :

    " malloc " /"fri"

    ' ny ' /' delete '

    " nya [ ] ' /delete [ ] '

    används korrekt
    4

    Kör programmet genom debugger igen genom att skriva: .

    " _CrtDumpMemoryLeaks ( )

    att se om problemet kvarstår .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man skriver Binary att lämna in en Exempelkod i C
    ·Hur man ansluter VB6.0 & VC + +
    ·Hur Bläddra till en rad i en DataGridView
    ·Hur man skapar en dubbelt - länkad lista i C-programme…
    ·Hur sortera i en Data Grid
    ·Hur förhindra upprepad användning av en header-fil
    ·Hur du registrerar ett SIS Nokia Application fil
    ·Hur att skriva egna Game Program
    ·Konvertera telefonnummer Into Text C
    ·Hur får man en ARGV Input Argument i C + +
    Utvalda artiklarna
    ·Hur att dekompilera Flash Spel
    ·Hur man skriver Embedded Politik Event Manager
    ·Hur att tolka en tabbavgränsad txt-fil i en array i PH…
    ·VBA-funktioner
    ·Hur du använder Tips & beskrivning med ColdFusion
    ·Hur till Bädda JavaScript Asp.net
    ·Varför uppstår en oändlig loop
    ·Hur man byter godtycklig text i String i C + +
    ·Hur man skriver effektiva objektorienterad kod
    ·Hur man skriver ett skript som raderar filer
    Copyright © Dator Kunskap http://www.dator.xyz