Page 170 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 170

double *P;

                      P = (double*) malloc(8); /* atau dapat juga ditulis dengan
                                                    P = (double*) malloc(sizeof(double)); */


                      Walaupun  cara  di  atas  diizinkan  oleh  kompiler  serta  program  juga  dapat  berjalan
                      dengan benar, namun kebanyakan dari programmer C pada umumnya lebih memilih
                      untuk menggunakan operator sizeof untuk mendapatkan ukuran dari tipe data tertentu.

                      7.10.2. Menggunakan Fungsi calloc()

                      Fungsi ini mempunyai bentuk prototipe sebagai berikut.

                        void *calloc(size_t n, size_t size);

                      Fungsi  calloc() akan  mengembalikan  pointer  ke  sebuah  array  yang  terdiri  dari  n
                      elemen  data  dengan  size (ukuran)  yang  ditentukan.  Apabila  tidak  terpenuhi,  maka
                      fungsi  ini  akan  mengembalikan  nilai  NULL.  Berbeda  dengan  fungsi  malloc() yang
                      tidak  melakukan  inisialiasi,  pada  fungsi  calloc() ini  ruang  yang  dialokasikan  akan
                      diinisialisasi dengan nilai nol. Untuk dapat lebih memahaminya, coba Anda perhataikan
                      contoh penggunaan fungsi calloc() berikut.


                      int *P;

                      P = (int*) calloc(20, sizeof(int));



                      Sintak di atas berarti mengalokasikan 80 byte ruang memori (yang berasal dari 20x4).
                      Dengan kata lain, terdapat 20 elemen array yang masing-masing elemennya berukuran 4
                      byte. Adapun nilai 4 di sini merupakan ukuran dari tipe data int.

                      7.10.3. Menggunakan  Fungsi  realloc()

                      Fungsi terakhir yang dapat digunakan untuk mengalokasikan memori di dalam bahasa C
                      adalah fungsi realloc().Berikut ini bentuk prototipe dari fungsi tersebut.

                        void *realloc(void *p, size_t size);

                      Perlu ditekankan bahwa fungsi realloc() ini sebenarnya digunakan untuk melakukan
                      perubahan  terhadap  alokasi  memori  yang  sebelumnya  telah  dilakukan  dengan
                      menggunakan  fungsi  malloc() atau  calloc().  Dengan  kata  lain,  fungsi  ini  hanya
                      digunakan untuk alokasi ulang apabila ternyata ruang yang dialokasikan oleh fungsi
                      malloc() atau calloc() kurang besar. Fungsi  realloc() ini akan mengembalikan
                      pointer  ke  ruang  baru  yang  ditambahkan, atau  mengembalikan  nilai  NULL apabila
   165   166   167   168   169   170   171   172   173   174   175