Dator > nackdelarna med pekare i C

  • nackdelarna med pekare i C


  • I programspråket C , pekare lagra adressinformation för minnesplatser i datorn . De medger också ett program för att be datorn för minne (eller " fördela " minne ) under genomförande . 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 med hjälp av en pekare , som pekaren måste ständigt refererar till minne tilldelas . Om vid någon tidpunkt en placering av tilldelade minnet inte har en motsvarande pekare (om alla pekare som hänvisar till minnet är " pekade " på annat håll ) , att minnet inte längre kan nås av programmet . Detta minne är nu " föräldralösa ". Anser dock datorn fortfarande detta minne tilldelas . Som ett program körs kontinuerligt , och samma rader kod körs miljontals gånger kan ett fel i minnesallokering av en pekare misstag snabbt fylla tillgängliga minnet med otillgängliga data , vilket orsakar en minnesläcka .

    Null Pekare

    Pekare som inte hänvisar till en adress i minnet kallas " null " pekare . Medan de tjänar användbara funktioner i programmering ( t. ex. betecknar fel minnesallokering ) uppstår ett stort problem när " dereferencing " en null-pekare ( dereferencing en pekare sätt att komma åt uppgifter på minnesplatsen som refereras av pekaren ) . När ett program är skrivet , inga säkerhetskontroller hantera dereferencing av en null-pekare . Faktum är att ett stort program får endast misstag dereference en null-pekare , någonstans djupt i miljoner rader kod . När koden exekveras, kommer dock en dereferenced nollpekare orsaka ett program kraschar .

    buffertspill

    Ett minne överskridandet ( eller " buffer overflow " ) uppstår när minne tilldelad av en pekare inte är tillräckligt stor för den information den får . Till exempel, om ett program allokerar minne för ett ord sju tecken långt och får som indata ett ord nio tecken långt , är de extra två karaktärer i minnet utanför de sju tecken pekaren minne . De extra två karaktärerna skriva någonting däri . Det finns inget sätt för programmet att veta vad som finns i dessa två extra minnesplatser . De kan innehålla känsliga uppgifter för programmet (som programmet variabler ) , 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 .


Previous:nothing Next:Hur konvertera oktala till binärt





Relaterade artiklar


  • hur man skapar en . dll i Visual Basic
  • hur du aktiverar Fjärrhjälp i registret med WSH
  • hur man skapar spel i Visual Basic
  • hur man skapar exe programfiler i Visual Studio 2008 Express Edition
  • hur man gör en animerad sprite med Game Maker 7
  • hur man gör dataspel på Game Maker
  • hur man får systemet datum från python
  • nybörjare Visual Basic 2008 tutorial
  • hur man skapar en pdf- fil som COBOL programutbud
  • hur du importerar data till MS Access med hjälp av SQL lagrade procedurer