Friday, April 6, 2012

Alokasi Memori Dinamis dengan Fungsi Malloc( )

Pada variabel yang biasa, untuk menggunakannya kita harus mendeklarasikannya dulu.
Pada saat deklarasi, slot memori dipesan untuk dipakai oleh variabel tersebut. Setelah dideklarasikan, variabel baru bisa digunakan.

Nah, inilah fungsi dari alokasi memori dinamis. Kita bisa membuat variabel tanpa deklarasi. Variabel tersebut baru dibuat saat dibutuhkan ketika runtime. Setelah selesai digunakan variabel tersebut harus dihapus. jika tidak, maka akan terjadi memori leaks.
Apa itu memory leaks? memory leaks adalah hilangnya memori komputer yang tersedia secara bertahap ketika sebuah program (aplikasi atau bagian dari sistem operasi) berulang kali gagal untuk mengembalikan memori yang telah diperoleh untuk penggunaan sementara. Akibatnya, memori yang tersedia untuk aplikasi atau bagian dari sistem operasi tersebut habis dan program tidak bisa lagi berfungsi.

fungsi2 dari alokasi memory :

size of() : Untuk mendapatkan ukuran dari berbagai tipe data,variabel atau struktur
malloc(): Untuk memesan alamat memori pada saat runtime
free() : Untuk membebaskan kembali memori yang telah digunakan
ketiganya ada pada prototype stlib.h

syntaxnya:

(tipedata *)malloc(size);
atau bisa juga begini
(tipedata *)malloc(sizeof(tipedata));
Jika ingin dijadikan array, bisa dituliskan begini
(tipedata *)malloc(n*sizeof(tipedata));


Setelah digunakan, jangan lupa memory tadi difree
syntaxnya:
free(pointeryangmenunjukvariabel);

IMPORTANT!!!!!!:
jangan free()pointer yang tidak pernah di malloc()
Jangan free() pointer yang sudah difree
Selalu free()variabel yang sudah selesai digunakan.

Contoh program yang menggunakan malloc download disini

0 comments:

Post a Comment