Page 171 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 171

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
   166   167   168   169   170   171   172   173   174   175   176