Operator new & delete
Pelajaran 11 dari 14 dalam kursus Pointer C++ di Coddy.
Hal penting terakhir yang perlu kamu pelajari tentang pointer adalah alokasi memori dinamis.
Alokasi memori dinamis memungkinkan memori dialokasikan saat program berjalan. Artinya, kamu tidak perlu mendeklarasikan dan menginisialisasi variabel saat menggunakan pointer sebelum program dimulai. Kita dapat mengalokasikan ruang di memori untuk sesuatu yang akan digunakan nanti.
Untuk itu, kita menggunakan kata kunci new.
int *ptr; // Mendeklarasikan pointer
// Mengalokasikan memori untuk 1 int:
ptr = new int; // ptr menunjuk ke memori tersebutDengan menggunakan new, kita pada dasarnya menyediakan ruang di memori untuk satu bilangan bulat yang dapat kita gunakan nanti.
Namun, agar kebocoran memori tidak terjadi, yang akan kita bahas di pelajaran berikutnya, setiap memori yang kita alokasikan menggunakan new harus kita hapus sebelum program berakhir dengan menggunakan kata kunci delete.
int *ptr;
ptr = new int;
*ptr = 10;
cout << "*ptr = " << *ptr << endl;
delete ptr; // Bebaskan memori yang telah dialokasikanSeperti yang kamu lihat, setelah kita mengalokasikan memori untuk pointer ptr, kita menghapusnya dengan menggunakan kata kunci delete. Ruang di memori itu kini telah dibebaskan. Di pelajaran berikutnya, kamu akan mempelajari pentingnya mengendalikan kebocoran memori.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Tantangan
MudahAlokasikan memori secara dinamis untuk tiga bilangan bulat menggunakan pointer ptrA, ptrB, dan ptrC. Gunakan tiga bilangan bulat yang diberikan sebagai argumen fungsi, lalu atur nilai di alamat pointer agar masing-masing sama dengan bilangan bulat tersebut. Bilangan bulat pertama untuk ptrA, bilangan bulat kedua untuk ptrB , dan bilangan bulat terakhir untuk ptrC, lalu cetak semua pointer yang sudah di-dereference dan pisahkan dengan spasi
JANGAN tulis fungsi <i>main()</i>
Coba sendiri
#include <iostream>
using namespace std;
void dynamicMemory(int a, int b, int c) {
// Tulis kodemu di sini
}
// JANGAN tulis fungsi main()Semua pelajaran di Pointer C++
3Alokasi Memori Dinamis
Operator new & deleteKebocoran Memoriarray DinamisPenyisipan pada array DinamisLatihan sendiri: Compiler C++ online