Contoh Program Alokasi dan Dealokasi Memori Dinamis pada C++
Pada kesempatan kali ini saya akan membahas tentang alokasi dan dealokasi memori dinamis pada C++. Namun sebelum itu rasanya perlu kita untuk mengetahui bagian (segment) memori yang digunakan pada program, khususnya C++. Bagian-bagian memori tersebut diantanya :
Text (code) : merupakan bagian dari memori dimana kode-kode program (basic instruction) disimpan. Buka file .exe dengan notepad maka akan terlihat simbol-simbol yang merupakan bahasa mesin yang tidak dapat kita baca. Isi dari file tersebutlah yang disimpan dalam segmen memori text (code).
Stack : merupakan bagian memori yang digunakan untuk menyimpan variabel-varibel yang didefinisikan saat kompilasi program, jadi alamat memorinya sudah ditentukan dari awal. Stack memiliki sifat LIFO (Last In First Out), dalam hal ini artinya variabel yang disimpan terakhir akan diambil pertama.
Heap : Nah, bagian inilah yang akan kita gunakan untuk melakukan alokasi memori dinamis. Heap merupakan bagian memori program yang tidak terpakai dan dapat digunakan untuk melakukan alokasi memori secara dinamis saat program sedang berjalan. Heap dapat digunakan selama tersedia tempat kosong untuk pengalokasian memori dinamis.
Setelah mengetahui ketiga bagian/segment memori program sekarang saatnya masuk ke pembahasan utama. Sebenarnya pengalokasian memori dinamis sudah sering kita temui, terutama padalinked list dan tree. Kenapa menggunakan alokasi memori dinamis? Kadangkala kita tidak mengetahui jumlah pasti banyaknya memori yang kita butuhkan pada sebuah program. Dengan menggunakan memori dinamis kita dapat mengalokasikan memori tambahan yang kita butuhkan ketika program sedang berjalan.
Pada C++, untuk melakukan alokasi memori dinamis kita menggunakan keyword new, sedangkan untuk melakukan dealokasi memori dinamis kita menggunakan keyword delete. Apakah perlu suatu memori yang dialokasikan untuk didealokasikan? Ya, karena data yang disimpan pada heap tidak akan terhapus secara otomatis. Apabila dibiarkan tanpa proses dealokasi akan terjadi kesalahan memori yang disebut “memory leaks”.
Bentuk pengalokasian memori dinamis :
Yang diperlukan adalah variabel pointer dan keyword “new”. Perhatikan contoh di bawah ini!
float *bil = new float;
pernyataan di atas indentik dengan,
float *bil;
bil = new float;
*Untuk cara pemberian nilai akan langsung dicontohkan pada program
Bentuk pendealokasian memori dinamis :
Yang diperlukan adalah keyword “delete” dan nama varibel pointer yang akan didealokasikan. Perhatikan contoh di bawah ini yang digunakan untuk dealokasi memori bil.
delete bil;
Berikut adalah contoh program sederhana alokasi dan dealokasi memori dinamis pada C++:
No comments:
Post a Comment