Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Alokasi memori dinamis

Presentasi serupa


Presentasi berjudul: "Alokasi memori dinamis"— Transcript presentasi:

1 Alokasi memori dinamis

2 A closer look at malloc Let's look at that malloc statement again:
sieve= (int *)malloc(n*sizeof(int)); This is a CAST (remember them) that forces the variable to the right type (not needed) we want n ‘int’ sizeof(int) returns how much memory a ‘int’ takes This says in effect "grab me enough memory for 'n' ‘int’"

3 Mengapa harus dilakukan alokasi memori dinamis?
Contoh kasus: Buatlah suatu vektor yang berisi n buah bilangan! syarat : - n dan bilangan elemen vektor dimasukkan dari keyboard pada saat program berjalan - tampilkan vektor setelah n buah bilangan dimasukkan semua

4 Solusi menggunakan array
Array  alokasi memori statis int vektor[10];//mengalokasikan sebanyak 10 bilangan int i,n; main( ) { cout<<“masukkan n!”; cin>>n; //membaca n dari keyboard cout<<“masukkan bilangan!”<<endl; for(i=0;i<n;i++) cin>>vektor[i]; //membaca bilangan } cout<<“menampilkan vektor :”<<endl; cout<<vektor[i]; //menampilkan bilangan

5 Konsekuensi alokasi memori statis
Banyaknya bilangan yang dapat diakses(banyaknya elemen vektor) maksimal hanya 10 buah (sesuai deklarasi arraynya) Untuk mengubah ukuran array tidak bisa dilakukan pada saat program berjalan (runtime) tetapi harus lewat source code-nya Misalnya ukuran array akan diubah menjadi 15, maka deklarasi array pada source code harus diubah menjadi: int vektor[15];

6 Solusi menggunakan pointer dan ‘malloc’
Alokasi memori dinamis int *vektor;//deklarasi pointer untuk memori penyimpan vektor int *catatan; int i,n; main( ) { cout<<“masukkan n!”; cin>>n; //membaca n dari keyboard vektor = (int *)malloc(n*sizeof(int));//alokasi memori catatan=vektor; cout<<“masukkan bilangan!”<<endl; for(i=0;i<n;i++) cin>>*vektor; //membaca bilangan vektor++; } cout<<“menampilkan vektor :”<<endl; vektor=catatan; cout<<*vektor; //menampilkan bilangan

7 Manfaat menggunakan alokasi memori dinamis
Ukuran vektor (banyaknya bilangan) bisa menjadi tak terbatas (secara teoritis), tetapi dalam praktek dibatasi oleh ukuran memori hardware Ukuran vektor bisa ditentukan pada saat program berjalan, tidak perlu mengubah source code


Download ppt "Alokasi memori dinamis"

Presentasi serupa


Iklan oleh Google