PENELITIAN.ID

Pointer Void Bahasa C Beserta Fungsi dan Penjelasannya

Sebuah pointer void merupakan jenis pointer yang tidak memiliki asosiasi data tipe apapun didalamnya. Sebuah pointer void dapat menampung nilai alamat dari tipe data apapun dan dapat dibuat typecasting ke tipe data apapun pula.

Contoh Tipe Data:
  • int a = 10;
  • char b = 'x';


Pointer Void Bahasa C Beserta Fungsi dan Penjelasannya
Pointer Void Bahasa C

Contoh Pointer dari Tipe Data
  • 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().

Contoh:

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);

}


Catatan: Program sebelumnya dapat dikompilasi pada bahasa C, tetapi tidak dapat dikompilasi pada C++, karena pada C++ harusi dilakukan typecasting secara eksplisit dari malloc to (int *) untuk nilai return-nya.

Baca Juga:

Fakta Menarik Tentang Pointer Void
  • 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.

Artikel ini didedikasikan kepada: Diah Ayu Gusti Arianti, Dzikru Robby Ar Rofiqi, Endang Rusniwati, Ericsson Dhimas Niagara, dan Fanca Bungsu Paranta.

Komentar

  1. Apa yang dimaksud dengan pointer void pada bahasa C?

    BalasHapus
    Balasan
    1. Pointer void pada bahasa C merupakan pointer yang tidak berkaitan dengan tipe data apapun. Pointer ini menunjuk ke beberapa lokasi data pada lokasi penyimpanan.

      Hapus
    2. Pointer void memiliki fungsi untuk menunjuk ke alamat variabel lainnya yang telah dideklarasikan pada bahasa C.

      Hapus
    3. Pointer void juga disebut sebagai pointer umum yang menggunakan malloc() dan calloc() untuk mengembalikan nilai * atau pointer generik.

      Hapus
  2. Kapa pointer void digunakan pada program bahasa C?

    BalasHapus
    Balasan
    1. Pointer 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

Posting Komentar

Hubungi admin melalui Wa : +62-896-2514-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 ~

Postingan populer dari blog ini (30 Hari)

Enkapsulasi Java dan Fungsinya

Penelitian Berdasarkan Tingkat Eksplanasinya

Judul Penelitian Tindakan Kelas dan Tahapan Siklusnya

Download Buku SMA Kurikulum Merdeka Tahun Ajaran 2023 2024

Paradigma Penelitian pada Statistika Penelitian

Postingan populer dari blog ini (All Time)

Enkapsulasi Java dan Fungsinya

Komunitas