Hva er nullptr i C++

Hva Er Nullptr I C



I C++ kalles en spesifikk pekerverdi a null-peker brukes til å indikere at en peker ikke refererer til noen gyldig minneplassering. I C++11-standarden eller senere er det representert med nøkkelordet ' nullptr ” eller med konstantverdien 0.

De null-peker ideen er avgjørende fordi den hjelper til med å forhindre feilaktig minnetilgang, noe som kan resultere i uventede kjøretidsfeil og programvarefeil. Tenk på scenariet når et program prøver å lese fra eller skrive til en minneadresse som enten ikke er opprettet eller som allerede er deallokert. Denne oppførselen er udefinerbar i C++ og kan føre til alvorlige kjøretidsproblemer eller sikkerhetsfeil. En peker er ugyldig og skal ikke henvises til hvis den kobler til en nullverdi. Programavslutninger, segmenteringsfeil eller uautoriserte minnetilganger er bare noen få eksempler på uventet oppførsel som kan skje når en null-peker .

Eksempel på nullptr i C++

#include
ved hjelp av navneområde std ;
int hoved- ( )
{
nullptr_t pi1, pi2 ;
hvis ( pi1 >= pi2 )
{
cout << 'Peker 1 er større enn peker 2-verdi' << endl ;
}
ellers
{
cout << 'Peker 2 er større enn peker 1-verdi' << endl ;
}
røye * kap = pi1 ;
hvis ( kap == nullptr )
cout << 'ch-pekervariabelen har nullverdi med 0. adressereferanse' << endl ;
ellers
cout << 'ch-pekervariabelen er ikke nullverdi den har en verdi med adressereferanse' << endl ;
komme tilbake 0 ;
}

I koden ovenfor bruker vi to nullptrs og sammenligne dem med hverandre. Deretter bruker vi tegnpekeren for å validere nullptr .







Produksjon



Grunner til å bruke nullptr i C++

Null-pekere brukes ofte i C++-programmering av flere grunner:



1: Initialisering av pekere

Når en pekervariabel er deklarert, skal den alltid initialiseres med en gyldig minneplassering eller en null-peker . Når pekeren åpnes senere i koden, bidrar dette til å forhindre uerklært atferd.





2: Feilkode

Funksjoner kan komme tilbake null-pekere som feilkoder for å vise at de ikke var i stand til å fullføre den angitte handlingen eller tildele minne.

3: Verifisere gyldigheten av pekeren

Å verifisere pekerens gyldighet før du refererer den er alltid en smart idé. Dette øker kodens robusthet og hjelper til med å forhindre uventede kjøretidsfeil.



4: Polymorfisme

I C++ er grunnklassepekere som ikke peker til noen objekter av avledede klasser representert av null-pekere . Dette brukes vanligvis i polymorf programmering for å håndtere objektorienterte funksjoner som arv og virtuelle funksjoner.

Null-pekere bør ikke forveksles med dinglende eller uinitialiserte pekere, det er viktig å huske dette. Uinitialiserte pekere kan peke til en hvilken som helst adresse i minnet siden de ikke har blitt initialisert med en verdi. Dinglepekere, derimot, er de som refererer til ugyldige eller allerede deallokerte minneregioner. I C++-programmering har hengende pekere og uinitialiserte pekere begge potensial til å resultere i kjøretidsproblemer.

Fordeler med å bruke nullptr i C++

Det er flere fordeler med å bruke en nullptr .

1: Sikkerhet

Fordi nullptr er mer typesikker enn NULL, bør den brukes i stedet. Mens NULL ganske enkelt er definert som en heltallskonstant med verdien null, nullptr er en peker-literal som bare kan transformeres til en pekertype og ikke til noen annen type.

2: Brukervennlighet

I C++-programmering er det mange måter å bruke null-peker . For å initialisere pekere, sende parametere til funksjonskall eller returnere pekerverdier fra funksjoner, som eksempler, er noen av dens mulige bruksområder. Den kan også brukes til å bestemme om et funksjonskall eller en handling ga en legitim pekerverdi.

3: Dynamisk minnetildeling

Den dynamiske minnetildelingen er blant de mest populære bruken av en null-peker . Ved å bruke den nye operatøren i C++ oppnås dynamisk minneallokering. Ved påkalling av den nye metoden returneres en peker til det nygenererte objektet. Hvis allokeringen mislykkes av en eller annen grunn, for eksempel å ikke ha nok minne, sendes NULL tilbake. Følgelig er det avgjørende å verifisere returverdien før du bruker pekeren for å være sikker på at allokeringen var vellykket.

Konklusjon

De null-peker er en nøkkelide i C++-programmering som gir en mekanisme for å vise at en adresse i minnet mangler. Utviklere kan forhindre programvarekrasj og andre problemer ved å bruke null-pekere for å sikre at applikasjonene deres ikke prøver å få tilgang til feilaktige minneadresser. Så det er viktig for programmerere å forstå hvordan null-pekere bør brukes og gjøre det effektivt i sine programmer.