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
   150   151   152   153   154   155   156   157   158   159   160