Dator
 |  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

    Nackdelarna av pekare i C

    I programspråket C , pekare store adressinformation för minnesplatser i datorn . De gör det också ett program för att möjliggöra be datorn för minnet ( eller " fördela " minnet ) under exekveringen . Eftersom pekare hantera minne dynamiskt , de kommer med vissa risker och nackdelar trots sin nödvändighet. Minnesläckor

    När ett program begär minne genom användning av en pekare , skall denna pekaren kontinuerligt referera minnet tilldelas. Om vid någon tidpunkt en plats för tilldelade minnet inte har en motsvarande pekare ( om alla pekare som refererar till minnet är " spetsiga " håll ) , kan detta minne inte längre nås av programmet . Detta minne är nu " föräldralösa . " Anser dock att datorn fortfarande detta minne allokeras . Som ett program ständigt körs , och samma kodrader utförs miljontals gånger , ett fel i minnesallokering med en pekare misstag kan snabbt fylla tillgängligt minne med otillgängliga data , vilket orsakar en minnesläcka .
    null pekare

    pekare som inte avser en adress i minnet kallas " null " pekare . Medan de tjänar användbara funktioner i programmering ( t.ex. betyda fel minnesallokering ) , uppstår ett stort problem när " dereferencing " en null- pekare ( dereferencing en pekare betyder att komma åt data på minnesplatsen refereras av pekaren ) . När ett program är skrivet , kontrollerar ingen säkerhet hantera dereferencing av en null- pekare . I själva verket , ett stort program får endast oavsiktligt avreferera en null pekare , någonstans djupt i miljontals rader kod . När koden exekveras , kommer dock en dereferenced null pekare orsaka ett program att krascha .
    Buffer Overflow

    minne överskridande ( eller " buffer overflow " ) uppstår när minne tilldelad av en pekare inte är tillräckligt stor för den information den tar emot . Till exempel, om ett program allokerar minne för ett ord sju tecken långt och får som indata ett ord nio tecken , är de extra två tecken lagrade i minnet utanför sju tecken pekare minne . De extra två tecken skriver över allt som finns däri . Det finns inget sätt för programmet att veta vad som finns i de extra två minnesplatser . De kan innehålla känsliga uppgifter om programmet ( t.ex. programvariabler ) , eller ens för själva datorn . Detta leder till " data korruption, " som uppgifter som borde ha varit intakt utanför det tilldelade minnet är nu äventyras .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur konvertera Visual C projekt till BCB
    ·Hur man läser en xls-fil med en C-programmet
    ·Hur man använder Strrchr funktion i C + +
    ·Hur man skapar en Pk3 Arkiv
    ·Hur man skapar ett slumptal i C
    ·Hur man gör en grundläggande spelet i C + +
    ·Hur man skriver ett Game Story i C + +
    ·Hur fixar GCC Varning implicit deklaration av funktion
    ·Hur man använder C + + för att få USB-penna serienum…
    ·Hur konvertera XML till Enum
    Utvalda artiklarna
    ·Hur Tillåt Åsidosättning PHP
    ·Ställa upp en tabell i Python
    ·Skillnader mellan Java 1.4 & Java 1.5
    ·Vad är en proxy klass
    ·Hur man skapar dynamiska sidor med PHP & MySQL
    ·Hur man lär sig C # Steg -för - steg
    ·Hur man gör en MFC Alarm Ansökan
    ·Hur Design Spel i Java
    ·Python Slice Metod
    ·Hur återställa raderade AVI -filer
    Copyright © Dator Kunskap http://www.dator.xyz