Kesalahan: Int Tidak Dapat Direferensikan di C++

Kesalahan Int Tidak Dapat Direferensikan Di C



Bahasa pemrograman memerlukan perpustakaan, fungsi, sintaksis, dan hal-hal lain saat bekerja dengannya. Jadi, ada kemungkinan kode kami mengandung kesalahan. Pemrograman dalam C++ memiliki banyak jenis kesalahan yang berbeda. Kita akan membahas tentang kesalahan “int tidak dapat didereferensi di C++” di sini. Kesalahan ini terjadi ketika kita mencoba menggunakan operator dereferensi “*” dengan data tipe integer “int” karena “int” adalah tipe data primitif. Kita tidak bisa melakukan dereferensi “int” dalam pemrograman C++. Di sini, kesalahan “int tidak dapat didereferensi di C++” dan solusinya akan dieksplorasi secara menyeluruh. Beberapa kode diberikan dalam panduan ini di mana kita akan melihat bagaimana kesalahan ini terjadi dan bagaimana menangani jenis kesalahan ini di C++.

Contoh 1: Dereferensi Int







Dalam kode ini, kami akan mencoba melakukan dereferensi “int” di C++. Sekarang, kita cukup menyertakan file header “iostream” untuk memanfaatkan fungsi yang ditentukan. Di bawahnya, kami menggunakan 'namespace std' dan memanggil metode 'main()' di sini. Kemudian, kita mendeklarasikan variabel “my_num” dengan tipe data “int” dan menetapkan “99” ke variabel ini.



Sekarang, kita mendeklarasikan “my_value” dari tipe data “int” dan menginisialisasinya dengan “*my_num” yang berarti kita mencoba melakukan dereferensi variabel “my_num” yang bertipe data “int”. Kesalahan terjadi pada baris ini saat kompilasi karena kami tidak dapat melakukan dereferensi 'int'. Kita ingin menampilkan nilai yang kita peroleh setelah melakukan dereferensi int, jadi kita menempatkan “cout” di mana kita menambahkan variabel “nilai_saya”.



Kode 1:





#termasuk
menggunakan namespace std;
ke utama ( ) {
ke dalam nomor_saya = 99 ;
int nilai_saya = * nomor_saya;
cout << 'Nilai yang kita peroleh melalui dereferensi int adalah:' << nilai_saya << akhir;
kembali 0 ;
}

Keluaran:



Di sini, kita mungkin memperhatikan bahwa tidak ada nilai yang ditampilkan dan terjadi kesalahan yang mengatakan bahwa ada argumen tipe unary “*” yang tidak valid. Artinya kita tidak bisa melakukan dereferensi “int” di C++.

Solusi 1: Tanpa Dereferensi

Di sini, kita akan mendapatkan nilai integer secara langsung tanpa melakukan dereferensi. Kami mengimpor file header “iostream” karena ada beberapa definisi fungsi. Kemudian, kita mengetikkan “namespace std” bersama dengan kata kunci “using” dan kemudian memanggil metode “main()” di sini. Sekarang, kita inisialisasi variabel “my_num” bertipe data “int” dengan nilai “99”.

Kemudian, kita menginisialisasi variabel lain dengan nama “nilai_saya” dan menetapkannya dengan variabel “angka_saya” yang berisi bilangan bulat. Setelah ini, kita mendapatkan nilai integer ini secara langsung tanpa melakukan dereferensi dengan menempatkan “nilai_saya” di “cout”. Ini mendapatkan dan menampilkan nilai integer.

Kode 1:

#termasuk
menggunakan namespace std;
ke utama ( ) {
ke dalam nomor_saya = 99 ;
int nilai_saya = nomor_saya;
cout << 'Nilai yang kita peroleh tanpa melakukan dereferensi int adalah:' << nilai_saya << akhir;
kembali 0 ;
}

Keluaran:

Nilai integer dirender di sini yang kita dapatkan tanpa melakukan dereferensi dalam kode C++ kita. Kami langsung mengakses nilai integer ini dan menampilkannya.

Solusi 2: Dengan Mendereferensi Pointer

File header “iostream” berisi definisi fungsi tertentu; kami mengimpornya. Selanjutnya, kita jalankan fungsi “main()” di sini setelah mengetik “namespace std” dan kata kunci “using”. Variabel “my_num” dari tipe data “int” sekarang diinisialisasi dengan nilai “99”.

Setelah ini, kita menginisialisasi pointer “my_ptr” dan menetapkan alamat variabel “my_num” ke pointer ini. Di bawahnya, kita melakukan dereferensi pointer dan menetapkan nilai yang kita peroleh melalui ini ke variabel “nilai_saya” saat kita menginisialisasi “nilai_saya” dengan “*nilai_saya”. Sekarang, kita menempatkan 'cout' di mana kita meneruskan variabel 'my_value' untuk menampilkan nilai integer yang kita dapatkan melalui dereferensi pointer.

Kode 2:

#termasuk
menggunakan namespace std;
ke utama ( ) {
ke dalam nomor_saya = 99 ;
ke dalam * my_ptr = & nomor_saya;
int nilai_saya = * my_ptr;
cout << 'Nilai int yang kita peroleh dengan mendereferensi sebuah pointer adalah:' << nilai_saya << akhir;
kembali 0 ;
}

Keluaran:

Nilai integer yang kita peroleh setelah melakukan dereferensi pointer dalam kode kita sekarang ditampilkan di sini. Jadi, ini adalah cara yang benar untuk menerapkan dereferensi di C++.

Contoh 2: Dereferensi Int

Mari kita coba melakukan dereferensi “int” di C++ dalam kode ini. Untuk menggunakan fungsi yang didefinisikan dalam “iostream”, kita hanya perlu menyertakan file header “iostream”. Di sinilah kita menggunakan “namespace std” dan memanggil fungsi “main()”. Selanjutnya, kita membuat variabel “a” dan memberinya tipe data “int” beserta nilai “75”.

Di bawahnya, kita membuat sebuah pointer bernama “newPointer” dan menetapkan alamat variabel “a” ke pointer ini dengan bantuan “&”. Kemudian, kita menginisialisasi variabel “num” di bawah ini dengan “*a” yang menunjukkan bahwa kita mencoba melakukan dereferensi variabel “a” yang bertipe data “int”. Karena kita tidak dapat melakukan dereferensi 'int', kesalahan sekarang terjadi pada baris ini selama kompilasi. Setelah ini, kita juga menggunakan “cout” di mana kita menambahkan variabel “num”.

Kode 2:

#termasuk
menggunakan namespace std;
ke utama ( ) {
ke dalam a = 75 ;
ke dalam * penunjuk baru = & A;
ke dalam angka = * A;
cout << 'Nilai dereferensi int adalah:' << pada satu << akhir;
kembali 0 ;
}

Keluaran:

Di sini, kita dapat melihat bahwa tidak ada nilai yang ditampilkan dan pesan kesalahan yang menyatakan “parameter tipe unary tidak valid”*” muncul. Ini menunjukkan bahwa 'int' tidak dapat didereferensi di C++.

Solusi 1: Tanpa Dereferensi

Kita tidak perlu melakukan dereferensi untuk segera mendapatkan nilai bilangan bulat. Kami mengimpornya karena file header “iostream” berisi definisi fungsi tertentu. Fungsi “main()” kemudian dipanggil setelah kata kunci “using” dan “namespace std” dimasukkan. Variabel “a” dari tipe data “int” sekarang diinisialisasi dengan nilai “75”. Setelah itu, kita masukkan “a” ke dalam “cout” untuk mendapatkan nilai integer ini segera tanpa melakukan dereferensi. Ini mengambil nilai integer dan menampilkannya di sini.

Kode 1:

#termasuk
menggunakan namespace std;
ke utama ( ) {
ke dalam a = 75 ;
cout << 'Nilai yang kita peroleh tanpa dereferensi adalah:' << A << akhir;
kembali 0 ;
}

Keluaran:

Nilai integer yang diperoleh dari kode C++ tanpa dereferensi disajikan di sini. Nilai bilangan bulat ini dapat langsung diakses dan ditampilkan di sini.

Solusi 2:

Kami mengimpor file header “iostream” yang berisi beberapa definisi fungsi. Di sini, kita mengetikkan “namespace std” dan kata kunci “using” sebelum menjalankan fungsi “main()”. Nilai “75” ditugaskan ke variabel “a”.

Selanjutnya, kita mendeklarasikan sebuah pointer bernama “mypointer” dan menginisialisasinya dengan alamat variabel “a” padanya. Di bawahnya, kita melakukan dereferensi pointer dan menetapkan nilai yang kita peroleh dari ini ke variabel “hasil” saat kita menginisialisasi “hasil” dengan “*mypointer”. Setelah melakukan dereferensi pointer, kita menempatkan perintah “cout” dan meneruskan variabel “hasil” untuk menampilkan nilai integer.

Kode 2:

#termasuk
menggunakan namespace std;
ke utama ( ) {
ke dalam a = 75 ;
ke dalam * penunjuk saya = & A;
int hasil = * penunjuk saya;
cout << 'Nilai yang kita peroleh melalui dereferensi penunjuk adalah:' << hasil << akhir;
kembali 0 ;
}

Keluaran:

Ini adalah teknik yang tepat untuk menerapkan dereferensi di C++. Ini merender nilai integer yang kita peroleh setelah melakukan dereferensi pointer alih-alih melakukan dereferensi 'int'.

Kesimpulan

Kami menjelajahi bahwa ketika kami mencoba untuk mendapatkan nilai dengan melakukan dereferensi 'int' di C++, kesalahan 'parameter tipe tidak valid dari unary '*' yang memiliki int' akan terjadi yang berarti 'int tidak dapat direferensikan di C++'. Kami juga menjelaskan solusi untuk kesalahan ini. Kami menggunakan kode tempat kesalahan terjadi dan kode tempat kami memberikan solusi kesalahan tersebut dalam panduan ini.