Menu
CoddyTech

Memori Dinamis dengan 'new'

Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 6 dari 56.

Sejauh ini, kamu telah menggunakan pointer yang menunjuk ke variabel yang sudah dibuat dalam programmu. Namun, bagaimana jika kamu perlu membuat variabel saat programmu sedang berjalan? Di sinilah alokasi memori dinamis dengan kata kunci new menjadi penting.

Kata kunci new memungkinkan kamu mengalokasikan memori untuk sebuah variabel di heap selama program dijalankan. Tidak seperti variabel biasa yang dibuat di stack, memori yang dialokasikan secara dinamis tetap ada sampai kamu membebaskannya secara eksplisit.

int* ptr = new int;  // Mengalokasikan memori untuk sebuah bilangan bulat
*ptr = 42;           // Memberikan nilai ke memori yang dialokasikan

Dalam contoh ini, new int mengalokasikan memori yang cukup untuk menyimpan sebuah bilangan bulat dan mengembalikan pointer ke lokasi memori tersebut. Kamu kemudian dapat menggunakan operator dereferensi untuk menetapkan nilai dan mengakses variabel yang dialokasikan secara dinamis, sama seperti pointer lainnya.

Alokasi memori dinamis sangat berguna ketika kamu belum tahu berapa banyak memori yang akan kamu perlukan hingga program berjalan, atau ketika kamu perlu agar variabel tetap ada di luar cakupan tempat variabel itu dibuat. Fleksibilitas ini menjadikan new alat yang ampuh untuk membangun program yang lebih kompleks.

challenge icon

Tantangan

Mudah

Buat program yang mendemonstrasikan alokasi memori dinamis menggunakan kata kunci new untuk mengalokasikan memori bagi sebuah variabel selama program dijalankan.

Input berikut akan diberikan:

  • Nilai bilangan bulat untuk disimpan dalam memori yang dialokasikan secara dinamis

Programmu harus:

  1. Menggunakan kata kunci new untuk mengalokasikan memori secara dinamis bagi sebuah bilangan bulat
  2. Menyimpan pointer yang dikembalikan oleh new dalam variabel pointer bernama numPtr
  3. Menggunakan operator dereferensi untuk menetapkan nilai input ke memori yang dialokasikan secara dinamis
  4. Mencetak nilai yang tersimpan dalam memori yang dialokasikan secara dinamis dengan melakukan dereferensi pointer
  5. Mencetak alamat memori yang tersimpan dalam pointer

Gunakan format output persis seperti berikut:

Value: [value]
Address: [memory address]

Alamat memori akan ditampilkan dalam format heksadesimal, yaitu format yang digunakan C++ untuk menampilkan alamat memori dari memori yang dialokasikan secara dinamis.

Coba sendiri

#include <iostream>
using namespace std;

int main() {
    // Baca input
    int value;
    cin >> value;
    
    // TODO: Tulis kodemu di bawah ini
    // Gunakan 'new' untuk mengalokasikan memori secara dinamis bagi sebuah bilangan bulat
    // Simpan pointer dalam variabel bernama 'numPtr'
    // Tetapkan nilai input ke memori yang dialokasikan secara dinamis
    
    // Tampilkan hasilnya
    cout << "Value: " << /* Akses nilai yang ditunjuk numPtr di sini */ << endl;
    cout << "Address: " << /* Tampilkan alamat yang disimpan dalam numPtr */ << endl;
    
    return 0;
}
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C++ online