Trong C++, mảng động được cấp phát trên heap bằng toán tử new và giải phóng bằng delete.
Cú pháp cơ bản
int *ptr = new int[n]; // cấp phát mảng n phần tử // sử dụng ptr[i] delete [] ptr; // giải phóng (cần [] cho mảng)
Ví dụ mã: Nhập/Xuất mảng động
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Nhập số phần tử: ";
cin >> n;
int *a = new int[n]; // cấp phát động
cout << "Nhập " << n << " phần tử:\n";
for (int i = 0; i < n; ++i)
cin >> a[i];
cout << "Các phần tử: ";
for (int i = 0; i < n; ++i)
cout << a[i] << " ";
cout << endl;
delete [] a; // quan trọng: dùng delete[] cho mảng
return 0;
}
Kết quả mẫu
Nhập số phần tử: 7 Nhập 7 phần tử: 1 2 3 4 5 6 7 Các phần tử: 1 2 3 4 5 6 7
Lưu ý quan trọng: Luôn dùng delete[] cho mảng được cấp phát bằng new[]. Dùng delete đơn lẻ gây rò rỉ bộ nhớ/undefined behavior.