Kiểu dữ liệu Stack
Kiểu dữ liệu stack là một phân đoạn của bộ nhớ RAM, được cấp phát cho mỗi luồng dữ liệu.
Hoạt động của stack được xác định bởi nguyên tắc LIFO. Bản chất của nguyên tắc này là phần tử được thêm vào stack cuối cùng sẽ được lấy ra đầu tiên.
Bản chất của việc làm việc với stack nằm ở việc khi khai báo một biến mới thông qua hàm, biến đó sẽ được thêm vào stack. Khi hàm kết thúc công việc - biến tự động bị xóa khỏi bộ nhớ stack và phần mà nó chiếm giữ trở nên sẵn sàng cho các đối tượng khác.
Ưu điểm chính của stack là tốc độ thực thi mã cao, tuy nhiên nhược điểm là khi bộ nhớ được cấp phát cho stack bị tràn, các biến đã khai báo sẽ không thể thay đổi được nữa và việc thực thi mã sẽ dừng lại. Kích thước stack được thiết lập khi tạo luồng, và mỗi biến có kích thước bộ nhớ tối đa riêng, mà trước hết phụ thuộc vào kiểu dữ liệu của nó. Vì vậy cần phải khai báo trước kích thước của các kiểu dữ liệu phức tạp (ví dụ: các đối tượng). Stack cũng chỉ có thể lưu giữ trong bộ nhớ các biến cục bộ, đối với biến toàn cục cần sử dụng heap.