Alokasi memori dinamis

Slides:



Advertisements
Presentasi serupa
ARRAY.
Advertisements

Pemrograman Terstruktur
Mulai Baca x S=x%2 S=0 “Genap” Selesai Yes No XSS=0?Output main() { int x,s; cin>>x; s=x%2; if(s==0) { cout
Mulai Baca x S=x%2 S=0 “Genap” Selesai Yes No XSS=0?Output main() { int x,s; cin>>x; s=x%2; if(s==0) { cout
ARRAY STATIS DAN DINAMIS
MODUL KULIAH STRUKTUR DATA TANGGAL REVISI TANGGAL BERLAKU KODE DOKUMEN :::::: September Session 8 Edited By Al-Bahra. L.B, S. Kom, M.
PERTEMUAN II ARRAY DIMENSI 1 & 2.
Pointer. Output? #include int x = 2; void misteri(int a, int b) { a = 2*x; b = y; y = a; } main() { int y; x = 5; y = 7; misteri(x, y); printf("%d %d\n",
SL-1201 Pengantar Pemrograman
ALGORITMA DAN STRUKTUR DATA
ARRAY (Lanjutan).
Linked List Pembuatan Simpul Awal.
STRUKTUR PERULANGAN (LOOPING)
Algoritma dan Struktur Data Daniel Riano Kaparang.
STRUKTUR DATA (D3) - Review array - Searching (Sequential & Binary)
Function.
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
ARRAY Dr. Lily Wulandari.
Teknik Pemrograman Terstruktur 2
PENGENALAN c++ DAN STRUKTUR DASAR C++
Pemrograman JAVA (TIB09)
Array Pertemuan ke 11..
Pemrograman Terstruktur
o Array merupakan variabel konpleks dengan tipe data yang sama. o Atau merupakan sekumpulan nilai (elemen) dengan tipe yang sama, dimana masing-masing.
ARRAY.
Pointer Variabel pointer sering disebut sebagai variabel yang menunjuk obyek lain, karena variabel pointer atau pointer adalah variabel yang berisi alamat.
ARRAY Definisi: Kumpulan data yang bertipe sama, dan disimpan dalam 1 nama varibel Digunakan nomor elemen (sub script) untuk mengaksesnya Deklarasi Array.
Algoritma & Struktur Data Pointer Evangs Mailoa.
Alokasi Memori Yuliana Setiowati.
Pemrograman Dasar Pointers.
Algoritma & Struktur Data Linked List Evangs Mailoa.
Pertemuan 22 POINTER Bag.2 Dasar Pemrograman Renni Angreni, S.Kom.
Algorithm and Data Structures.
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
Pointer Pointer.
Structure Data - Array Pertemuan 7 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Pointer.
Bab 05 Tipe Data dan Mengisi Variabel
POINTER.
Teknik Pemrog. Terstruktur 2
Tenia Wahyuningrum pointers Tenia Wahyuningrum
Array, POINTER dan FUNGSI
Array, POINTER dan FUNGSI
Teknik Pemrog. Terstuktur 2
STRUKTUR PERULANGAN 2 (LOOPING-2)
POINTER Bag.2 Pertemuan 22 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom.
STRUKTUR DATA DIMENSIONAL ARRAY
ARRAY / LARIK STRUKTUR DATA Oleh : Yuli Praptomo PHS, S.Kom.
PEMROGRAMAN DASAR.
Pemrograman Terstruktur
Informatique Engineering Ahmad Dahlan University May 17, 2004
ARRAY (Array Dua Dimensi) Pertemuan 16 Dasar Pemrograman
Algoritma dan Struktur Data
Deklarasi Array X : array [ 1.. N ] of Type
Pertemuan 3 Variabel/Dinamik Pointer
ALGORITMA DAN PEMROGRAMAN II
ARRAY DIMENSI 1 & 2.
Pertemuan 2 ARRAY DIMENSI 1 & 2.
ARRAY (LARIK).
PEMROGRAMAN DASAR (BAHASA C)
ARRAY Oleh : sgo.
As’ad Djamalilleil Array (Larik) As’ad Djamalilleil
ALGORITMA & STRUKTUR DATA I
Tenia Wahyuningrum pointers Tenia Wahyuningrum
Algoritma dan Struktur Data
Array.
Variable Static & Linked List
Array.
Array.
SINGLE LINKED LIST (SLL)
Transcript presentasi:

Alokasi memori dinamis

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’"

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

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

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];

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

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