Page 155 - Project Akhir Media Pendidikan
P. 155
/* Membebaskan memori yang telah dipesan untuk tipe int */
free(P);
/* Memesan ruang memori untuk mengalokasikan nilai dengan tipe
data int */
P = (double *) malloc (sizeof(Y));
/* Mengisikan alamat dari variabel Y yang bertipe double */
P = &Y;
/* Menampilkan nilai */
printf(“Nilai Y \t: %3.2fd\n”, Y);
printf(“Nilai &Y \t: %p\n”, &Y);
printf(“Nilai *P \t: %3.2f\n”, *((double *) P));
printf(“Nilai P \t: %p\n”, P);
/* Membebaskan memori yang telah dipesan untuk tipe double */
free(P);
return 0;
}
Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut.
Nilai X : 21
Nilai &X : 0073FDE0
Nilai *P : 21
Nilai P : 0073FDE0
Nilai Y : 5.42
Nilai &Y : 0073FDD8
Nilai *P : 5.42
Nilai P : 0073FDD8
Apabila Anda masih merasa bingung dengan kehadiran fungsi malloc() dan free()
yang terdapat pada sintak di atas, Anda tidak perlu cemas karena materi tersebut akan
kita bahas pada sub bab selanjutnya dalam bab ini.
Dari hasil di atas terlihat jelas bahwa pointer P yang bertipe void, dapat kita gunakan untuk
menunjuk alamat yang berisi tipe data yang lain (dalam contoh ini adalah tipe int dan
double).
Satu hal yang perlu diperhatikan dari sintak di atas adalah pada saat kita menuliskan
dereference pointer untuk tipe int dan double, digunakan sintak seperti berikut.
151