Study
C++

Pointer & Dynamic Memory di C++ (new & delete)

Penjelasan

C++ mewarisi konsep pointer dari C, tapi memakai keyword new dan delete (bukan malloc()/free() ala C) untuk alokasi memori dinamis — sintaksnya lebih ringkas dan otomatis memanggil constructor kalau mengalokasikan object. Sama seperti C, memori yang dialokasikan dengan new WAJIB dibebaskan manual dengan delete, kalau tidak akan terjadi memory leak.

Contoh Konsep

#include <iostream>

int main() {
    int *umur = new int; // alokasi 1 int
    *umur = 20;
    std::cout << *umur << std::endl; // 20
    delete umur; // WAJIB, mencegah memory leak

    int *angka = new int[5]; // alokasi array 5 int
    angka[0] = 100;
    delete[] angka; // pakai delete[] untuk array

    return 0;
}

Praktikum

Alokasikan array dinamis untuk 3 nilai integer dengan new int[3]. Isi dengan angka 100, 200, 300, tampilkan totalnya lewat perulangan, lalu jangan lupa bebaskan memorinya dengan delete[].

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Pakai delete untuk memori tunggal (new int) dan delete[] untuk array (new int[5]) — tertukar antara keduanya adalah undefined behavior. Kalau memungkinkan, pertimbangkan std::vector dibanding array dinamis manual supaya tidak perlu delete[] sama sekali.