Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Alokasi memori dinamis. A closer look at malloc Let's look at that malloc statement again: sieve= (int *)malloc(n*sizeof(int)); sizeof(int) returns how.

Presentasi serupa


Presentasi berjudul: "Alokasi memori dinamis. A closer look at malloc Let's look at that malloc statement again: sieve= (int *)malloc(n*sizeof(int)); sizeof(int) returns how."— 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)); sizeof(int) returns how much memory a ‘int’ takes we want n ‘int’ This is a CAST (remember them) that forces the variable to the right type (not needed) 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!”<>vektor[i]; //membaca bilangan } cout<<“menampilkan vektor :”<

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!”<>*vektor; //membaca bilangan vektor++; } cout<<“menampilkan vektor :”<

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. A closer look at malloc Let's look at that malloc statement again: sieve= (int *)malloc(n*sizeof(int)); sizeof(int) returns how."

Presentasi serupa


Iklan oleh Google