Computer >> Máy Tính >  >> Lập trình >> C ++

Sử dụng ngăn xếp và đống thích hợp trong C ++?

Ngăn xếp - Tất cả các biến được khai báo bên trong hàm sẽ chiếm bộ nhớ từ ngăn xếp. Vì vậy, bất kỳ biến cục bộ nào bên trong một hàm đều nằm trên ngăn xếp.

đống - Đây là bộ nhớ không sử dụng của chương trình và có thể được sử dụng để cấp phát động bộ nhớ khi chương trình chạy. Vì vậy, nếu chúng ta muốn một cái gì đó tồn tại lâu hơn hàm đã khai báo nó, chúng ta phải phân bổ nó trên heap.

Ví dụ

int main() {
   int a; //get memory allocated on stack.
   int *ptr=new int[7]; //memory for 7 integers allocated on heap.
}

Vấn đề chính trong bộ nhớ heap là phân mảnh trong khi vấn đề thiếu bộ nhớ có nhiều khả năng xảy ra trong ngăn xếp. Kích thước bộ nhớ có thể được thay đổi trong heap mà không thể thay đổi trong ngăn xếp.