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[].
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.