Trả lời:
Đáp án đúng: B
Toán tử `new` trong C++ (và nhiều ngôn ngữ lập trình khác) được sử dụng để cấp phát bộ nhớ động. Bộ nhớ này được cấp phát từ heap (vùng nhớ động).
* **Stack:** Stack là vùng nhớ được quản lý tự động bởi hệ thống, thường được sử dụng cho các biến cục bộ và các lời gọi hàm. Bộ nhớ trên stack được cấp phát và giải phóng theo cơ chế LIFO (Last-In, First-Out). Vì vậy, stack không phù hợp cho việc cấp phát bộ nhớ động theo yêu cầu của lập trình viên.
* **Heap:** Heap là vùng nhớ được quản lý bởi hệ thống, cho phép lập trình viên cấp phát và giải phóng bộ nhớ một cách linh hoạt. Toán tử `new` cấp phát bộ nhớ từ heap, và toán tử `delete` (hoặc các cơ chế quản lý bộ nhớ khác) được sử dụng để giải phóng bộ nhớ đã cấp phát.
* **Register:** Register là các thanh ghi trong CPU, được sử dụng để lưu trữ dữ liệu và địa chỉ một cách nhanh chóng. Register không phải là vùng nhớ để cấp phát bộ nhớ động.
Do đó, đáp án đúng là Heap.