Nêu rõ tính chất,ưu điểm,nhược điểm,cách sử dụng của bộ nhớ cấp phát động trong C++

1 câu trả lời

Ưu điểm:

+ Số phần tử của mảng được cấp phát động thì không nhất thiết phải cố định

+ Mảng được cấp phát trên vùng nhớ Heap, mà vùng nhớ này là vùng nhớ lớn nhất nên có thể khai báo mảng đấy có nhiều phần tử

+ Thay đổi được size của mảng, vốn dĩ cú pháp cũng giống con trỏ, có dấu * nên muốn tăng size mảng thì chỉ cần chạy con trỏ tới 1 vùng nhớ size lớn hơn

Nhược điểm:

+ Vùng nhớ Heap dù lớn nhưng khi truy xuất lại rất nhậm (không nhanh bằng vùng nhớ Stack) => truy xuất trong cấp phát động sẽ chậm hơn thường

+ Phải tự quản lý bộ nhớ được cấp phát động, không giống như cách thường là tự động giải phóng thì cách cấp phát động bạn phải tự giải phóng bộ nhớ, nếu không giải phóng thì có thể gây lãng phí bộ nhớ hoặc tràn bộ nhớ

Cách sử dụng:

<kiểu dữ liệu> *<array>=new <kiểu dữ liệu>[<số phần tử>];

Để giải phóng: delete []<array>;

Ví dụ tên mảng là a, thuộc kiểu số nguyên và có số phần tử là 1000:

int *a=new int[1000];
delete []a;