De NULL -peker Ideen er avgjørende fordi den hjelper til. 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 blitt behandlet. Den oppførselen er udefinerbar i C ++ og kan føre til alvorlige problemer med kjøretid eller sikkerhetsfeil. En peker er ugyldig og bør ikke bli derferert hvis den lenker til en nullverdi. Programoppsigelser, segmenteringsfeil eller uautoriserte minnetilganger er bare noen få eksempler på uventet oppførsel som kan skje når du derferanser en NULL -peker.
Eksempel på nullptr i C++
#inkludere
ved hjelp av navneområdet STD;
int main ()
nullptr_t pi1, pi2;
if (pi1> = pi2)
cout << "The pointer 1 is greater than the pointer 2 value" << endl;
ellers
cout << "The pointer 2 is greater than the pointer 1 value" << endl;
char *ch = pi1;
if (ch == nullptr)
cout << "The ch pointer variable has null value with 0th address reference" << endl;
ellers
cout << "The ch pointer variable is not null value it has some value with address reference" << endl;
retur 0;
I koden ovenfor bruker vi to NULLPTRS og sammenligne dem med hverandre. Så bruker vi karakterpekeren for å validere NULLPTR.
Produksjon
Grunner til å bruke nullptr i C++
NULL -pekere brukes ofte i C ++ programmering av flere grunner:
1: Initialisere pekere
Når en pekervariabel er deklarert, bør den alltid initialiseres med et gyldig minneplass eller en NULL -peker. Når pekeren er tilgjengelig senere i koden, hjelper dette til å forhindre uklaret oppførsel.
2: Feilkode
Funksjoner kan komme tilbake NULL -pekere som feilkoder for å vise at de ikke var i stand til å fullføre den spesifiserte handlingen eller tildele minne.
3: Å verifisere gyldigheten av pekeren
Å verifisere pekerens gyldighet før du har vært en smart idé før du blir en smart idé. Dette øker kodens robusthet og hjelpemidler for å forhindre uventede kjøretidsfeil.
4: Polymorfisme
I C ++ er basklassepekere som ikke peker på noen gjenstander fra avledede klasser representert av NULL -pekere. Dette brukes vanligvis i polymorf programmering for å håndtere objektorienterte funksjoner som arv og virtuelle funksjoner.
NULL -pekere skal ikke forveksles med dingling eller uinitialiserte pekere, det er viktig å huske dette. Uinitialiserte pekere kan peke på enhver adresse i minnet, siden de ikke har blitt initialisert med en verdi. Dinglingpekere er derimot de som refererer til ugyldige eller allerede deallokaterte minneområder. I C ++ programmering har dinglende pekere og uinitialiserte pekere begge potensialet til å resultere i runtime -problemer.
Fordeler ved å bruke nullptr i C++
Det er flere fordeler ved å bruke en NULLPTR.
1: Sikkerhet
Fordi NULLPTR er mer typesikkert enn null, den bør brukes i stedet. Mens null ganske enkelt er definert som en heltalkonstant med verdien null, NULLPTR er en peker bokstavelig som bare kan transformeres til en pekertype og ikke til noen annen type.
2: Brukbarhet
I C ++ programmering er det mange måter å bruke NULL -peker. For å initialisere pekere, send parametere til funksjonsanrop, eller returpekerverdier fra funksjoner, som eksempler, er noen av dens mulige bruksområder. Det kan også brukes til å avgjøre om en funksjonsanrop eller handling ga en legitim pekerverdi.
3: Dynamisk minnetildeling
Den dynamiske minnetildelingen er blant de mest populære bruksområdene til en NULL -peker. Ved hjelp av den nye operatøren i C ++ oppnås dynamisk minnetildeling. Når du påkaller den nye metoden, returneres en peker til det nylagede objektet. Hvis tildelingen mislykkes uansett grunn, for eksempel ikke å ha nok minne, blir null sendt tilbake. Følgelig er det avgjørende å bekrefte returverdien før du bruker pekeren for å være sikker på at tildelingen var vellykket.
Konklusjon
De NULL -peker er en sentral idé i C ++ -programmering som gir en mekanisme for å vise at en adresse i minnet mangler. Utviklere kan forhindre programvarekrasj og andre problemer ved å ansette 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 programmene sine.