Void Pointer Di C: Mengapa Anda Membutuhkannya dalam Pengalaman Coding Anda
Dalam bahasa pemrograman, konsep tertentu membuat pengkodean menjadi lebih mudah. Misalnya, penunjuk kosong menentukan tipe data spesifik dari input pengguna akhir dalam bahasa pemrograman C. Oleh karena itu, membawa kita untuk membahas pointer kosong di C.
Seperti yang lain, pointer kosong memiliki fungsi yang relevan untuk fleksibilitasnya. Namun, jika Anda ingin menghemat waktu saat pengkodean, fungsi penunjuk masuk Anda adalah penunjuk kosong. Pointer ini memungkinkan Anda menyimpan dan mengambil tipe objek yang berbeda secara bersamaan. Selanjutnya, Anda akan mempelajari semua tentang teknik pengkodean yang melibatkan pointer kosong di C.
(Gambar bahasa pemrograman)
1. Apa itu Void Pointer di C?
Umumnya, void pointer adalah pointer tanpa tipe data terkait. Dengan kata lain, mereka seperti wadah kosong. Fitur ini memungkinkan mereka untuk menyimpan alamat dari variabel tipe tipe data yang tidak diketahui.
Fungsi pointer kosong C memungkinkan Anda mengetik-melemparkannya ke tipe data lain, memungkinkan alokasi memori yang mudah. Selanjutnya, ini memungkinkan fungsi fleksibel seperti byte dalam alokasi memori. Selanjutnya, pointer kosong dalam C membantu menjalankan fungsi generik.
(Program “Hello World” sederhana dalam bahasa pemrograman C)
https://commons.m.wikimedia.org/wiki/File:C_Hello_World_Program.png
2. Bagaimana Void Pointer Bekerja di C?
Secara keseluruhan, fungsi pointer sangat penting untuk pemrograman. Setidaknya, kita melihat pentingnya dalam menangani manajemen dan alokasi memori.
Ada dua jenis penunjuk yang berbeda; pointer generik dan pointer kosong. Namun, fokus kami adalah pada pointer kosong dan cara kerjanya di C.
Untuk memiliki pointer void di C, Anda hanya perlu mendeklarasikan sepotong informasi dengan kata kunci “void.”
Secara keseluruhan, referensi dan dereferencing berperan dalam konsep pointer tujuan umum. Dereferensi, dalam hal ini, adalah ketika Anda memperoleh nilai yang disimpan dalam variabel pointer.
Jadi, jika nilai pointer tidak terkait dengan tipe data yang tersedia, Anda memiliki tipe-casting sebagai opsi.
Namun, perhatikan bahwa pointer kosong tidak mendukung operasi aritmatika apa pun. Sebagai gantinya, kami menggunakan operator tipuan “*.” Untuk alasan itu, menjadi perlu untuk mengetik-cast tanpa adanya tipe data terkait. Typecasting, oleh karena itu, menghubungkan tipe data yang dideklarasikan di samping pointer kosong. Jika tidak, menjalankan program akan menampilkan kesalahan kompiler.
Ukuran void mirip dengan pointer karakter di C. Ukuran objek bervariasi tergantung pada platform pointer.
Fungsi manajemen memori ini adalah malloc() dan calloc(). Sebagai imbalannya, fungsi-fungsi ini membantu mengalokasikan memori dari tipe data yang dibutuhkan. Di satu sisi, alokasi memori menggunakan format yang memungkinkan penunjuk fungsi meningkatkan fitur lainnya.
(Ilustrasi bergambar tentang cara kerja pointer di C).
https://commons.m.wikimedia.org/wiki/File:C_pointer_3.svg
3. Sintaks Penunjuk Kosong
Biasanya, akan lebih baik menggunakan sintaks yang tepat untuk mengimpor fungsi pemrograman apa pun. Oleh karena itu, sintaks dari pointer kosong di C adalah:
Kosongkan *pointer_name;
Dimana "void" adalah kata kunci dari jenis pointer. Jadi, kita memiliki nama pointer yang kita tunjuk dan memberikan alokasi alamat.
Mari kita ambil contoh di bawah ini:
int b =6
char c =‘z’;
Oleh karena itu, dalam kasus di mana kami menyertakan variabel pointer kosong, kami memiliki:
Kosong *p =&b; // void pointer mengalokasikan dan menahan int 'b' sebagai alamat integer.
P =&c; // void pointer juga menyimpan alamat char ‘c’.
Lebih jauh, mari kita soroti beberapa contoh sintaks:
int i=6; // inisialisasi variabel integer.
int *p; // deklarasi pointer integer.
batal *ptr; // batalkan deklarasi pointer.
mengapung *fp; // deklarasi pointer mengambang.
p=fp; // penunjuk tidak valid.
ptr=p; // penunjuk yang valid.
fp=&i; // penunjuk tidak valid.
ptr=&i; // penunjuk yang valid.
ptr=fp; // penunjuk yang valid.
4. Beberapa Contoh Void Pointer di C Dengan Contoh Kode
Selanjutnya, kita melihat contoh argumen pointer kosong dalam cuplikan kode di bawah ini:
Contoh kode #1
Dalam contoh kode pertama kami, kami menunjukkan cara menggunakan fungsi malloc(), sebagai berikut:
#include
#include
int main()
{
int a=90;
int *x =(int*)malloc(sizeof(int));
x=&a;
printf(“nilai yang ditunjuk oleh x pointer :%d”,*x);
kembalikan 0;
}
Keluaran
Contoh kode #2
Dalam kode berikutnya, kami menunjukkan konsep type-casting.
#include
int main()
{
batal *ptr =NULL; //mengosongkan variabel penunjuk
int *p =NULL;// variabel pointer integer
char *cp =NULL;//variabel penunjuk karakter
float *fp =NULL;//variabel penunjuk float
//membatalkan ukuran pointer
printf(“ukuran pointer kosong =%d\n\n”,sizeof(ptr));
//ukuran pointer bilangan bulat
printf(“Ukuran penunjuk bilangan bulat =%d\n\n”,ukuran(p));
//ukuran penunjuk karakter
printf(“ukuran penunjuk karakter =%d\n\n”,ukuran(cp));
//ukuran pointer mengambang
printf(“ukuran pointer mengambang =%d\n\n”,sizeof(fp));
kembalikan 0;
}
Keluaran
Jika tidak, lihat tautan video terlampir di bawah tentang kode penunjuk kosong dalam pemrograman C.
https://youtu.be/-503stjWLhc
5. Penggunaan pointer kosong
Sejauh ini, void pointer memiliki relevansi yang luas dalam pemrograman bahasa C.
- Mereka membantu menunjukkan variabel dari tipe data apa pun.
Untuk pemahaman yang lebih baik, lihat contoh kode di bawah ini. Beberapa di antaranya adalah:
#include
batal batal()
{
int num=10;//Menginisialisasi variabel normal
void *ptr;//Mendeklarasikan pointer kosong
ptr=#//Mengarahkan pointer Ptr ke num
printf(“Nilai variabel integer adalah=%d”,*ptr );
}
Namun, menjalankan kode ini menghasilkan kesalahan waktu kompilasi. Jika Anda menggunakan type-casting pada kode yang sama untuk mendereferensi pointer, Anda mendapatkan output yang diinginkan, dengan demikian:
#include
batal batal()
{
int num=10;//Menginisialisasi variabel normal
void *ptr;//Mendeklarasikan pointer kosong
ptr=#//Mengarahkan pointer Ptr ke num
printf(“Nilai variabel integer adalah %d”, *(int*)ptr );// Dereferencing menggunakan typecasting
}
Nilai variabel integer adalah 10.
Oleh karena itu, dengan type-casting, kita dapat mendereferensikan void pointer.
Jadi, sementara aritmatika pointer tidak valid dengan pointer kosong, type-casting membantu memecahkan masalah itu. Outputnya menjadi:
(Penunjuk kosong membuat pengkodean lebih mudah dengan mengungkapkan lokasi variabel data)
- Dengan calloc() dan malloc(), pointer void membantu mengalokasikan lokasi memori untuk semua tipe data.
Sebagai ilustrasi, lihat kode di bawah ini:
int main(void)
{
// Perhatikan bahwa fungsi malloc() mengembalikan void *
// Menindaklanjuti, ketik-cast ke semua tipe data seperti char *, int *,…
int *x =malloc(ukuran(int) * n);
}
Sebagai catatan, program di atas hanya dikompilasi dalam C.
- Terakhir, variabel pointer kosong membantu mengimplementasikan fungsi generik di C.
Kesimpulan
Fungsi void pointer adalah alat pemrograman yang penting, secara umum. Pemrogram merasa berguna karena tidak ada tipe data yang terkait dengannya. Setidaknya, ini menghilangkan kebingungan pointer yang mengarahkan nilai dan kelas data yang berbeda satu sama lain. Oleh karena itu, void pointer mengurangi kelebihan tipe-casting. Ini juga mendukung tipe data pointer generik. Oleh karena itu, ini juga merupakan kompiler tujuan umum.
Anda memiliki panduan lengkap tentang bekerja dengan pointer kosong di c. Namun, jika Anda memiliki pertanyaan atau membutuhkan sumber daya pemrograman lainnya, halaman kontak kami selalu tersedia.