Pointer Void Bahasa C Beserta Fungsi dan Penjelasannya
- int a = 10;
- char b = 'x';
- void *p = &a; // void pointer menampung nilai alamat dari variabel int 'a'.
- p = &b; // void pointer menampung alamat dari char 'b'.
Keunggulan pointer void:
- malloc() dan calloc() mengembalikan tipe void * dan memungkinkan fungsi tersebut untuk digunakan pada alokasi memori dari tipe data apapun.
- pointer void pada bahasa C digunakan untuk implementasi fungsi generic pada bahasa C. Contoh, perbandingan fungsi yang digunakan pada qsort().
int main(void)
{
// Fungsi malloc() makan
// mengembalikan nilai void *
// yang dapat dilakukan
// typecast ke tipe data
// apapun seperti int *, char
// *, dan lain sebagainya.
int *x = malloc(sizeof(int) * n);
}
- Pointer void tidak dapat dilakukan dereferensi.
- Standar C tidak memberikan akses ke aritmatika pointer dengan menggunakan pointer void. Namun demikian, pada GNU C, hal tersebut dimungkinkan karena nilai ukuran dari void adalah 1.
Contoh:
#include<stdio.h>
int main()
{
int a = 10;
void *ptr = &a;
printf("%d", *ptr);
return 0;
}
Output:Compiler Error: 'void*' is not a pointer-to-object type
Contoh:
#include<stdio.h>
int main()
{
int a = 10;
void *ptr = &a;
printf("%d", *(int *)ptr);
return 0;
}
Output:10
Contoh: kompilasi program menggunakan gcc.
#include<stdio.h>
int main()
{
int a[2] = {1, 2};
void *ptr = &a;
ptr = ptr + sizeof(int);
printf("%d", *(int *)ptr);
return 0;
}
Output:2
Catatan: program sebelumnya mungkin tidak dapat bekerja secara optimal jika dikompilasi pada jenis kompilator yang berbeda.
- Keyword Restrict Bahasa C Beserta Penjelasannya
- Perbedaan Antara const char *p, char * const p, dan const char * const p Bahasa C
- Pointer Ke Array Bahasa C dan Penjelasannya
- Enum Bahasa C dan Penjelasannya
- Struct Bahasa C dan Penjelasannya
- Union Bahasa C dan Penjelasannya
- Struct Hack Bahasa C dan Penjelasannya
6 komentar untuk "Pointer Void Bahasa C Beserta Fungsi dan Penjelasannya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan pointer void pada bahasa C?
BalasHapusPointer void pada bahasa C merupakan pointer yang tidak berkaitan dengan tipe data apapun. Pointer ini menunjuk ke beberapa lokasi data pada lokasi penyimpanan.
HapusPointer void memiliki fungsi untuk menunjuk ke alamat variabel lainnya yang telah dideklarasikan pada bahasa C.
HapusPointer void juga disebut sebagai pointer umum yang menggunakan malloc() dan calloc() untuk mengembalikan nilai * atau pointer generik.
HapusKapa pointer void digunakan pada program bahasa C?
BalasHapusPointer void digunakan ketika dilakukan proses penyimpanan object dari tipe data apapun, dan dapat digunakan untuk mengambil nilai object dari tipe data apapun dengan menggunakan operator indirection dengan tipecasting yang tepat.
Hapus