Page 152 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 152

/* 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.
   147   148   149   150   151   152   153   154   155   156   157