Page 173 - Project Akhir Media Pendidikan
P. 173

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



                                                          169
   168   169   170   171   172   173   174   175   176   177   178