Menu
CoddyTech

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 tersebut

Dengan 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 dialokasikan

Seperti 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.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

challenge icon

Tantangan

Mudah

Alokasikan 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++

Latihan sendiri: Compiler C++ online