Algoritma Dan Struktur Data C++ BAB IV (Alokasi Memori)
printf("Hallo Para Programmer!!");
printf("Disini
Saya Akan Menjelaskan Sedikit Dasar Mengenai Alokasi Memori Dalam Bahasa C/C++");
printf("Terus
Ikuti Blog Ini Untuk Mendapatkan Artikel Bermanfaat Selanjutnya yah");
printf("Selamat Belajar!!");
A. Mengapa Menggunakan Alokasi Memory
Ketika kita mempelajari
tipe data array, nampak kelemahan tipe data ini adalah sifatnya yang statis.
Artinya ketika kita mendeklarasikan sebuah variabel dengan tipe data array maka
data yang kita deklarasikan disimpan pada memori harus dalam kondisi terurut.
Selain itu selama program berjalan ukuran dari array bersifat tetap atau kita
tidak dapat merubahnya.
Adakalanya dalam
pemrograman ukuran sebuah obyek belum dapat kita tentukan sampai program kita
jalankan. Alokasi memori menyediakan fasilitas untuk membuat ukuran buffer dan
array secara dinamik. Dinamik artinya bahwa ruang dalam memori akan
dialokasikan ketika program dieksekusi (run time). Fasilitas ini memungkinkan
user untuk membuat tipe data dan struktur dengan ukuran dan panjang berapapun
yang disesuaikan dengan kebutuhan di dalam program.
1. Perintah
sizeof()
Sebelum
kita menggunakan alokasi memori, kita harus mengenal perintah sizeof. Perintah
ini digunakan untuk:
•
Untuk mendapatkan ukuran dari berbagai tipe data, variabel ataupun struktur.
•
Return value : ukuran dari obyek yang bersangkutan dalam byte.
•
Parameter dari sizeof() : sebuah obyek atau sebuah tipe data
Pada
Gambar 4.1 ditunjukkan contoh penggunaan perintah sizeof() dan hasil outputnya
pada Gambar 4.2.
2. Perintah
malloc()
Fungsi
standar dalam C yang digunakan untuk mengalokasikan memori adalah malloc().
Prototype dari fungsi ini adalah sebagai berikut: void *malloc(int jml_byte)
Banyaknya byte yang akan dipesan dinyatakan sebagai parameter fungsi. Return
value dari fungsi ini adalah sebuah pointer yang tak bertipe (pointer to void)
yang menunjuk ke buffer yang dialokasikan. Pointer tersebut haruslah dikonversi
kepada tipe yang sesuai (dengan menggunakan type cast) agar bisa mengakses data
yang disimpan dalam buffer. Jika proses alokasi gagal dilakukan, fungsi ini
akan memberikan return value berupa sebuah pointer NULL.
Sebelum
dilakukan proses lebih lanjut, perlu terlebih dahulu dipastikan keberhasilan
proses pemesanan memori, seperti ditunjukkan pada Gambar 4.3.
0 comments:
Posting Komentar