Ano ang nullptr sa C++

Ano Ang Nullptr Sa C



Sa C++, isang tiyak na halaga ng pointer na tinatawag na a null pointer ay ginagamit upang ipahiwatig na ang isang pointer ay hindi tumutukoy sa anumang wastong lokasyon ng memorya. Sa pamantayan ng C++11 o mas bago, kinakatawan ito ng keyword na “ nullptr ” o sa pamamagitan ng pare-parehong halaga ng 0.

Ang null pointer Ang ideya ay napakahalaga dahil nakakatulong ito sa pagpigil sa mga maling pag-access sa memorya, na maaaring magresulta sa hindi inaasahang mga error sa runtime at mga pagkabigo ng software. Isaalang-alang ang senaryo kapag sinubukan ng isang programa na magbasa mula o magsulat sa isang memory address na hindi pa nagagawa o na-deallocate na. Ang gawi na iyon ay hindi matukoy sa C++ at maaaring magresulta sa mga seryosong isyu sa runtime o mga bahid sa seguridad. Ang isang pointer ay hindi wasto at hindi dapat i-dereference kung ito ay nagli-link sa isang null na halaga. Ang mga pagwawakas ng programa, mga pagkakamali sa pagse-segment, o hindi awtorisadong pag-access sa memorya ay ilan lamang sa mga halimbawa ng hindi inaasahang pag-uugali na maaaring mangyari kapag binalewala ang isang null pointer .

Halimbawa ng nullptr sa C++

#include
gamit namespace std ;
int pangunahing ( )
{
nullptr_t pi1, pi2 ;
kung ( pi1 >= pi2 )
{
cout << 'Ang pointer 1 ay mas malaki kaysa sa pointer 2 na halaga' << endl ;
}
iba pa
{
cout << 'Ang pointer 2 ay mas malaki kaysa sa pointer 1 na halaga' << endl ;
}
char * ch = pi1 ;
kung ( ch == nullptr )
cout << 'Ang ch pointer variable ay may null value na may 0th address reference' << endl ;
iba pa
cout << 'Ang ch pointer variable ay hindi null value mayroon itong ilang value na may address reference' << endl ;
bumalik 0 ;
}

Sa code sa itaas, gumagamit kami ng dalawa nullptrs at paghahambing ng mga ito sa isa't isa. Pagkatapos ay ginagamit namin ang pointer ng character upang patunayan ang nullptr .







Output



Mga Dahilan para Gumamit ng nullptr sa C++

Null pointer ay kadalasang ginagamit sa C++ programming para sa ilang kadahilanan:



1: Pagsisimula ng mga Pointer

Kapag ang isang pointer variable ay idineklara, ito ay dapat palaging nasimulan sa isang wastong lokasyon ng memorya o a null pointer . Kapag na-access ang pointer sa ibang pagkakataon sa code, nakakatulong ito upang maiwasan ang hindi nadeklarang gawi.





2: Error Code

Maaaring bumalik ang mga function null pointer bilang mga error code upang ipakita na hindi nila nakumpleto ang tinukoy na aksyon o naglaan ng memorya.

3: Pagpapatunay sa Bisa ng Pointer

Ang pag-verify sa validity ng pointer bago ito i-dereference ay palaging isang matalinong ideya. Pinatataas nito ang katatagan ng code at nakakatulong ito sa pagpigil sa mga hindi inaasahang pagkabigo sa runtime.



4: Polymorphism

Sa C++, ang mga base-class pointer na hindi tumuturo sa anumang mga bagay ng nagmula na mga klase ay kinakatawan ng null pointer . Ito ay karaniwang ginagamit sa polymorphic programming upang pangasiwaan ang object-oriented na mga feature tulad ng inheritance at virtual functions.

Null pointer hindi dapat malito sa nakalawit o hindi nasimulang mga payo, mahalagang tandaan ito. Ang mga hindi nasimulang pointer ay maaaring tumuro sa anumang address sa memorya dahil hindi pa sila nasimulan ng isang halaga. Ang mga nakabitin na pointer, sa kabilang banda, ay ang mga tumutukoy sa di-wasto o na-deallocated na mga rehiyon ng memorya. Sa C++ programming, nakabitin na mga pointer, at hindi nasimulang mga pointer ay parehong may potensyal na magresulta sa mga problema sa runtime.

Mga Bentahe ng Paggamit ng nullptr sa C++

Mayroong ilang mga benepisyo ng paggamit ng a nullptr .

1: Kaligtasan

kasi nullptr ay mas ligtas sa uri kaysa sa NULL, dapat itong gamitin sa halip. Habang ang NULL ay simpleng tinukoy bilang isang integer constant na may halagang zero, nullptr ay isang pointer literal na maaari lamang mabago sa isang uri ng pointer at hindi sa anumang iba pang uri.

2: Kakayahang magamit

Sa C++ programming, maraming paraan para magamit ang null pointer . Upang simulan ang mga pointer, magpadala ng mga parameter sa mga function na tawag, o ibalik ang mga value ng pointer mula sa mga function, bilang mga halimbawa, ang ilan sa mga posibleng gamit nito. Maaari rin itong gamitin upang matukoy kung ang isang function na tawag o aksyon ay nagbunga ng isang lehitimong halaga ng pointer.

3: Dynamic na Memory Allocation

Ang dynamic na paglalaan ng memorya ay kabilang sa mga pinakasikat na gamit ng a null pointer . Gamit ang bagong operator sa C++, nagagawa ang dynamic na paglalaan ng memorya. Sa pag-invoke ng bagong pamamaraan, ibabalik ang isang pointer sa bagong nabuong bagay. Kung nabigo ang alokasyon para sa anumang kadahilanan, tulad ng hindi pagkakaroon ng sapat na memorya, ibabalik ang NULL. Dahil dito, napakahalagang i-verify ang return value bago gamitin ang pointer upang matiyak na matagumpay ang alokasyon.

Konklusyon

Ang null pointer ay isang pangunahing ideya sa C++ programming na nagbibigay ng mekanismo upang ipakita na nawawala ang isang address sa memorya. Maaaring maiwasan ng mga developer ang mga pag-crash ng software at iba pang mga isyu sa pamamagitan ng paggamit null pointer upang matiyak na hindi sinusubukan ng kanilang mga application na i-access ang mga maling address ng memorya. Kaya, mahalaga para sa mga programmer na maunawaan kung paano null pointer dapat gamitin at gawin ito nang mahusay sa kanilang mga programa.