Page 174 - Project Akhir Media Pendidikan
P. 174

permintaan  ruang  tersebut  tidak  dipenuhi.  Berikut  ini  contoh  penggunaan  fungsi
                      realloc() untuk menambahkan ruang memori yang telah dialokasikan.



                      int *P;
                      P = (int*) calloc(10, sizeof(int)); /* Memesan ruang 40 byte */
                      realloc((int*) P, 80); /* Memesan ruang sebanyak 40 byte lagi */


                      7.11.  Mendealokasikan Memori


                      Untuk  menghindari  adanya  pemborosan  memori  ataupun  terjadinya  memory  leak
                      (kebocoran memori), maka sebaiknya kita melakukan dealokasi terhadap ruang-ruang
                      memori  yang  sebelumnya  telah  dialokasikan  melalui  fungsi  malloc(),  calloc()
                      maupun realloc(). Dalam bahasa C, proses ini akan dilakukan dengan menggunakan
                      fungsi  free()  yang memiliki parameter berupa pointer. Berikut ini prototype dari
                      fungsi free().

                        void *free(void *p);

                      p  di sini haruslah berupa pointer yang sebelumnya dialokasikan dengan menggunakan
                      fungsi malloc(), calloc() ataupun realloc(). Berikut ini contoh penggunaan fungsi
                      free().



                      #include <stdio.h>
                      int main(void) {
                         int *P;

                         P = (int*) malloc(sizeof(int));

                         /* Kode yang akan dilakukan */
                         ...

                         /* Mendealokasikan alamat yang telah selesai digunakan */
                         free(P);

                         return 0;
                      }



                      7.12.  Memory Leak

                      Bagi kebanyakan programmer pemula, penggunaan pointer biasanya akan menyebabkan
                      memory leak (kebocoran memori), yaitu peristiwa dimana terdapat adanya ruang memori
                      yang terbuang secara sia-sia karena ruang memori tersebut sudah tidak dapat di akses untuk
                      didealokasikan.  Memory  leak  ini  dapat  mengakibatkan  program  ataupun




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