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;