Što je nullptr u C++

Sto Je Nullptr U C



U C++, određena vrijednost pokazivača koja se naziva a nulti pokazivač se koristi za označavanje da se pokazivač ne odnosi na valjanu memorijsku lokaciju. U standardu C++11 ili novijem, predstavljen je ključnom riječi ' nullptr ” ili konstantnom vrijednošću 0.

The nulti pokazivač Ideja je ključna jer pomaže u sprječavanju pogrešnih pristupa memoriji, što može rezultirati neočekivanim pogreškama tijekom izvođenja i kvarovima softvera. Razmotrite scenarij kada program pokušava čitati ili pisati na memorijsku adresu koja ili nije kreirana ili je već opozvana. To se ponašanje ne može definirati u C++ i može dovesti do ozbiljnih problema s vremenom izvođenja ili sigurnosnih nedostataka. Pokazivač je nevažeći i ne bi se trebao dereferencirati ako povezuje na nultu vrijednost. Završeci programa, pogreške segmentacije ili neovlašteni pristupi memoriji samo su neki od primjera neočekivanog ponašanja koje se može dogoditi prilikom dereferenciranja nulti pokazivač .

Primjer nullptr u C++

#include
korištenjem imenski prostor std ;
int glavni ( )
{
nullptr_t pi1, pi2 ;
ako ( pi1 >= pi2 )
{
cout << 'Pokazivač 1 je veći od vrijednosti pokazivača 2' << endl ;
}
drugo
{
cout << 'Pokazivač 2 je veći od vrijednosti pokazivača 1' << endl ;
}
char * CH = pi1 ;
ako ( CH == nullptr )
cout << 'Varijabla pokazivača ch ima vrijednost null s referencom adrese 0' << endl ;
drugo
cout << 'Varijabla pokazivača ch nije nulta vrijednost, već ima neku vrijednost s referencom adrese' << endl ;
povratak 0 ;
}

U gornjem kodu koristimo dva nullptrs i međusobno ih uspoređujući. Zatim koristimo pokazivač znakova za provjeru valjanosti nullptr .







Izlaz



Razlozi za korištenje nullptr u C++

Nulti pokazivači često se koriste u C++ programiranju iz nekoliko razloga:



1: Inicijaliziranje pokazivača

Kada je varijabla pokazivača deklarirana, uvijek bi se trebala inicijalizirati s valjanom memorijskom lokacijom ili a nulti pokazivač . Kada se pokazivaču pristupa kasnije u kodu, to pomaže u sprječavanju neprijavljenog ponašanja.





2: Šifra pogreške

Funkcije se mogu vratiti nulti pokazivači kao kodove grešaka koji pokazuju da nisu mogli dovršiti navedenu radnju ili dodijeliti memoriju.

3: Provjera valjanosti pokazivača

Provjera valjanosti pokazivača prije dereferenciranja uvijek je pametna ideja. To povećava robusnost koda i pomaže u sprječavanju neočekivanih kvarova u vremenu izvođenja.



4: Polimorfizam

U C++, pokazivači osnovne klase koji ne pokazuju na objekte izvedenih klasa predstavljeni su nulti pokazivači . To se obično koristi u polimorfnom programiranju za rukovanje objektno orijentiranim značajkama kao što su nasljeđivanje i virtualne funkcije.

Nulti pokazivači ne treba miješati s visećim ili neinicijaliziranim pokazivačima, važno je zapamtiti ovo. Neinicijalizirani pokazivači mogu pokazivati ​​na bilo koju adresu u memoriji budući da nisu inicijalizirani vrijednošću. S druge strane, viseći pokazivači su oni koji se odnose na nevažeća ili već oslobođena područja memorije. U C++ programiranju, viseći pokazivači i neinicijalizirani pokazivači mogu rezultirati problemima u vremenu izvođenja.

Prednosti korištenja nullptr u C++

Nekoliko je prednosti korištenja a nullptr .

1: Sigurnost

Jer nullptr je tipski sigurniji od NULL, trebao bi se koristiti umjesto njega. Dok je NULL jednostavno definirana kao cjelobrojna konstanta s vrijednošću nula, nullptr je literal pokazivača koji se može transformirati samo u tip pokazivača, a ne u bilo koji drugi tip.

2: Upotrebljivost

U C++ programiranju postoji mnogo načina za korištenje nulti pokazivač . Inicijaliziranje pokazivača, slanje parametara pozivima funkcija ili vraćanje vrijednosti pokazivača iz funkcija, kao primjeri, neke su od njegovih mogućih upotreba. Također se može koristiti za određivanje jesu li poziv funkcije ili radnja dali legitimnu vrijednost pokazivača.

3: Dinamička dodjela memorije

Dinamička dodjela memorije jedna je od najpopularnijih upotreba a nulti pokazivač . Korištenjem novog operatora u C++-u postiže se dinamička dodjela memorije. Prilikom pozivanja nove metode, vraća se pokazivač na svježe generirani objekt. Ako dodjela ne uspije iz bilo kojeg razloga, kao što je nedostatak memorije, NULL se šalje natrag. Posljedično, ključno je provjeriti povratnu vrijednost prije korištenja pokazivača kako biste bili sigurni da je dodjela bila uspješna.

Zaključak

The nulti pokazivač je ključna ideja u C++ programiranju koja daje mehanizam koji pokazuje da adresa u memoriji nedostaje. Programeri mogu spriječiti pad softvera i druge probleme korištenjem nulti pokazivači kako bi bili sigurni da njihove aplikacije ne pokušavaju pristupiti pogrešnim memorijskim adresama. Dakle, bitno je da programeri shvate kako nulti pokazivači trebaju koristiti i to učiniti učinkovito u svojim programima.