Apa itu nullptr di C++

Apa Itu Nullptr Di C



Di C++, nilai penunjuk tertentu disebut a penunjuk nol digunakan untuk menunjukkan bahwa pointer tidak merujuk ke lokasi memori yang valid. Dalam standar C++ 11 atau yang lebih baru, ini diwakili oleh kata kunci “ nullptr ” atau dengan nilai konstanta 0.

Itu penunjuk nol ide sangat penting karena membantu mencegah akses memori yang salah, yang dapat mengakibatkan kesalahan runtime yang tidak terduga dan kegagalan perangkat lunak. Pertimbangkan skenario ketika sebuah program mencoba untuk membaca dari atau menulis ke alamat memori yang belum dibuat atau telah dibatalkan alokasinya. Perilaku itu tidak dapat ditentukan dalam C++ dan dapat mengakibatkan masalah waktu proses yang serius atau kelemahan keamanan. Pointer tidak valid dan tidak boleh direferensikan jika ditautkan ke nilai nol. Penghentian program, kesalahan segmentasi, atau akses memori yang tidak sah hanyalah beberapa contoh perilaku tak terduga yang mungkin terjadi saat melakukan dereferensi sebuah penunjuk nol .

Contoh nullptr di C++

#termasuk
menggunakan ruang nama std ;
int utama ( )
{
nullptr_t pi1, pi2 ;
jika ( pi1 >= pi2 )
{
cout << 'Nilai penunjuk 1 lebih besar dari nilai penunjuk 2' << endl ;
}
kalau tidak
{
cout << 'Nilai penunjuk 2 lebih besar dari nilai penunjuk 1' << endl ;
}
arang * ch = pi1 ;
jika ( ch == nullptr )
cout << 'Variabel penunjuk ch memiliki nilai nol dengan referensi alamat ke-0' << endl ;
kalau tidak
cout << 'Variabel pointer ch bukan nilai nol, ia memiliki beberapa nilai dengan referensi alamat' << endl ;
kembali 0 ;
}

Dalam kode di atas, kami menggunakan dua nullptrs dan membandingkannya satu sama lain. Kemudian kami menggunakan pointer karakter untuk memvalidasi nullptr .







Keluaran



Alasan Menggunakan nullptr di C++

Pointer nol sering digunakan dalam pemrograman C++ karena beberapa alasan:



1: Menginisialisasi Pointer

Ketika variabel pointer dideklarasikan, itu harus selalu diinisialisasi dengan lokasi memori yang valid atau a penunjuk nol . Saat penunjuk diakses nanti dalam kode, ini membantu mencegah perilaku yang tidak dideklarasikan.





2: Kode Kesalahan

Fungsi dapat kembali pointer nol sebagai kode kesalahan untuk menunjukkan bahwa mereka tidak dapat menyelesaikan tindakan yang ditentukan atau mengalokasikan memori.

3: Memverifikasi Validitas Pointer

Memverifikasi validitas penunjuk sebelum melakukan dereferensi selalu merupakan ide yang cerdas. Ini meningkatkan ketangguhan kode dan membantu mencegah kegagalan runtime yang tidak terduga.



4: Polimorfisme

Di C++, pointer kelas dasar yang tidak menunjuk ke objek apa pun dari kelas turunan diwakili oleh pointer nol . Ini biasanya digunakan dalam pemrograman polimorfik untuk menangani fitur berorientasi objek seperti pewarisan dan fungsi virtual.

Pointer nol tidak boleh disamakan dengan pointer yang menjuntai atau tidak diinisialisasi, sangat penting untuk mengingat ini. Pointer yang tidak diinisialisasi dapat mengarah ke alamat mana pun di memori karena belum diinisialisasi dengan nilai. Pointer yang menggantung, di sisi lain, adalah yang mengacu pada wilayah memori yang tidak valid atau sudah tidak dialokasikan. Dalam pemrograman C++, pointer yang menjuntai, dan pointer yang tidak diinisialisasi keduanya berpotensi mengakibatkan masalah runtime.

Keuntungan Menggunakan nullptr di C++

Ada beberapa manfaat menggunakan a nullptr .

1: Keamanan

Karena nullptr lebih aman daripada NULL, itu harus digunakan sebagai gantinya. Sementara NULL secara sederhana didefinisikan sebagai konstanta bilangan bulat dengan nilai nol, nullptr adalah literal pointer yang hanya dapat diubah menjadi tipe pointer dan bukan tipe lainnya.

2: Kegunaan

Dalam pemrograman C++, ada banyak cara untuk menggunakan penunjuk nol . Untuk menginisialisasi pointer, mengirim parameter ke pemanggilan fungsi, atau mengembalikan nilai pointer dari fungsi, sebagai contoh, adalah beberapa kemungkinan penggunaannya. Ini juga dapat digunakan untuk menentukan apakah pemanggilan fungsi atau tindakan menghasilkan nilai penunjuk yang sah.

3: Alokasi Memori Dinamis

Alokasi memori dinamis adalah salah satu penggunaan paling populer dari a penunjuk nol . Menggunakan operator baru di C++, alokasi memori dinamis tercapai. Saat memanggil metode baru, pointer ke objek yang baru dibuat dikembalikan. Jika alokasi gagal karena alasan apa pun, seperti tidak memiliki cukup memori, NULL dikirim kembali. Akibatnya, sangat penting untuk memverifikasi nilai kembalian sebelum menggunakan pointer untuk memastikan bahwa alokasi berhasil.

Kesimpulan

Itu penunjuk nol adalah ide kunci dalam pemrograman C++ yang memberikan mekanisme untuk menunjukkan bahwa alamat dalam memori hilang. Pengembang dapat mencegah kerusakan perangkat lunak dan masalah lain dengan menggunakan pointer nol untuk memastikan bahwa aplikasi mereka tidak mencoba mengakses alamat memori yang salah. Jadi, penting bagi programmer untuk memahami caranya pointer nol harus digunakan dan melakukannya secara efisien dalam program mereka.